.NET6中关于Minimal API的简单使用

微信公众号:趣编程ACE
收集并分享日常的.NET实战开发技巧,源码获取关注后回复 源码;
**如果觉得本公众号对您有帮助,欢迎关注

本文来自社区群粉丝投稿

.NET6中关于Minimal API的简单使用

详细文档参考官网 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis?view=aspnetcore-6.0

基础代码

1using Microsoft.AspNetCore.Mvc;2using MinimalDemoApi.Models;3using MinimalDemoApi.Services;45var builder = WebApplication.CreateBuilder(args);67// 配置swagger8builder.Services.AddEndpointsApiExplorer();9builder.Services.AddSwaggerGen();
10
11var app = builder.Build();
12
13
14// Configure the HTTP request pipeline.
15if (app.Environment.IsDevelopment())
16{
17    app.UseSwagger();
18    app.UseSwaggerUI();
19}
20
21app.Run();

其实最早接触这个Miniapi的形式是在写node.js的时候,现在.net6中新增了这个功能,有着异曲同工之妙,所以如果我们项目中API数量少的话,完全可以采用这种形式开发,很精简~

示例一、

1app.MapGet("/", ()=>new {Id=1,Name="Jarry"});

访问根目录,页面会返回如下对象:

50632dea61c82b4c2a79a6c56be8c073.png

示例二、

1app.MapGet("/error",()=>Results.Problem("An Error Occurred",statusCode:500));

提供一个出错接口,当访问时,可以得到如下返回信息以及响应状态码

8e55e35c206084c8cbef6fd1adff7017.png

示例三、

使用[FromServices]解决无法通过构造函数获取容器对象的问题,同时访问Get请求

1app.MapGet("/api/user",([FromServices]IUserManager userManager)=> {userManager.GetUsers();});

a8703b8fbb4deeb06215d24c3f83bafc.png

示例四、
实现[HttpPost]请求访问接口,并通过Produces这个内置类型返回响应的状态码

1app.MapPost("/api/create",([FromServices]IUserManager userManager,[FromBody]User user)
2                                =>userManager.CreateUser(user) ? Results.Ok(): Results.BadRequest())
3                                .WithName("Create User")  // 指定名称
4                                .Produces<User>(StatusCodes.Status200OK) // 返回响应体以及状态码
5                                .Produces(StatusCodes.Status400BadRequest);

1d3e7d473301c505b3d5df6b85d6d38c.png

返回格式展示:

a6a24951e9d71fd296ef6969cf07e7bb.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290077.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据量分页查询方法(转)

本文旨在介绍一种对数据库中的大数据量表格进行分页查询的实现方法&#xff0c;该方法对应用服务器、数据库服务器、查询客户端的cpu和内存占用都较低&#xff0c;查询速度较快&#xff0c;是一个较为理想的分页查询实现方案。 1&#xff0e;问题的提出 在软件开发中&#xff…

DVR分布式路由

1. 背景 没有使用DVR的场景&#xff1a; 从图中可以明显看到东西向和南北向的流量会集中到网络节点&#xff0c;这会使网络节点成为瓶颈。 如果启用DVR&#xff0c;如下图&#xff1a; 对于东西向的流量&#xff0c; 流量会直接在计算节点之间传递。 对于南北向的流量&#xff…

浏览器兼容性很重要

<meta http-equiv"X-UA-Compatible" content"IEedge,chrome1">转载于:https://www.cnblogs.com/yeahdwb/p/4203428.html

SQL函数获取一年中每个月的天数

第一步&#xff1a;编写判断一年是否是闰年的函数IsLeapYear <strong>CREATE FUNCTION IsLeapYear( Year INT) RETURNS BIT AS BEGIN IF (Year % 4 0) and ((Year % 100 <> 0) or (Year % 400 0)) RETURN 1 RETURN 0 END</strong> 第二步&#xff1a…

求斐波那契数列的特征方程和通项公式

1、斐波那契数列 f(1) 1; f(2) 1; f(3) f(1) f(2);以此内推1 x 1f(x) 1 x 2f(x - 1) f(x - 2) x > 32、特征方程 解释&#xff1a;特征方程是为研究相应的数学对象而引入的一些等式&#xff0c;它因数学对象不同而不…

php实现pdf文件的生成与下载

2019独角兽企业重金招聘Python工程师标准>>> 这个有点复杂的&#xff0c;我们一步一步来说明。 受先我们要下载pdf需要的文件&#xff0c;搜索‘php生成pdf’找到相关进行下载&#xff0c;这里不做介绍 //pdf下载$name $_SESSION[ex_uname];$name_pdf$name..pdf;$u…

C#-线程

多线程通常一个应用就是一个进程&#xff0c;进程中一般是一个线程&#xff0c;执行一个操作&#xff0c;其他操作等待。多线程&#xff0c;看起来是一个进程&#xff0c;有多个线程同时运行&#xff0c;互相不必等待&#xff0c;实际是把cpu的空闲时间利用起来&#xff0c;cpu…

window 效率神器:Wox

官方网站 http://www.getwox.com/ 下载后以管理员身份运行&#xff0c;右下角可以看到Wox的图标。点击setting可以进入主界面 如果看不懂可以将语言设置为中文 默认快捷键是Alt space 热键呼出。你理应习惯这个风格。这是你高效率的开始 进入主题&#xff08;Theme&#xff09…

Visual Studio listView控件绑定SQL Server数据库并动态显示数据,调整列宽

在Visual Studio中,可以用listView控件直接从SQL Server数据库中动态读取数据,并自动调整列宽。本文讲解如何通过ADO.net连接SQL Server数据库,并用SqlDataReader读取数据,并显示到listview控件中。 代码中的MyDBase为自定义的使用ADO.NET方法交互数据库的类。代码获取:《…

趣学算法之斐波拉契数列实现

1、斐波拉契数列 f(1) = 1; f(2) = 1; f(3) = f(1) + f(2);以此内推1 x = 1 f(x) = 1 x = 2f(x - 1) + f(x - 2) x >= 3 2、代码实现 #include <stdio.h> #include <stdlib.h>int fib1(int n)…

java mysql数据去重_java使用MySQL和HQL数据去重

思路先查询出满足某种条件的数据的最小ID&#xff0c;然后删除最小ID以外的数据就实现了去重实例查询最小ID的重复数据select * from oms_relation_model ormwhere orm.fd_id(select min(t.fd_id) from oms_relation_model twhere orm.fd_ekp_idt.fd_ekp_id and orm.fd_ekp_idt…

scala入门-01-IDEA安装scala插件

2019独角兽企业重金招聘Python工程师标准>>> 由于本人一直使用IDEA开发Java项目&#xff0c;目前scala也可以使用IDEA开发&#xff0c;下载地址&#xff1a;http://www.jetbrains.com/idea/ Community Edition FREE 和 Ultimate Edition Free 30-day trial都支撑s…

GeneralUpdate20220323里程碑版本发布

大家好我是juster&#xff0c;GeneralUpdate的开源项目作者。这次将发布GeneralUpdate里程碑版本&#xff0c;该版本发生了巨大改变历时4个月的时间终于要和大家见面了。开源不易希望大家能多多支持。可能或多或少会有些bug希望大家多多反馈&#xff0c;这里也有一个小小的心愿…

信息安全系统设计基础第七周学习总结

存储器的层次结构 存储技术 静态RAMSRAM将每一位存储在双稳态的存储器单元中 动态RAMDRAM将每一位存储为对电容充电。 传统的DRAMd*w的DRAM存储dw位信息 增强的DRAM 非易失性存储器 访问主存 磁盘存储 磁盘构造 磁盘容量公式&#xff1a;磁盘容量&#xff08;字节数/扇区) *…

FFmpeg的HEVC解码器源码简单分析:解码器主干部分

HEVC源码分析文章列表&#xff1a;【解码 -libavcodec HEVC 解码器】FFmpeg的HEVC解码器源码简单分析&#xff1a;概述FFmpeg的HEVC解码器源码简单分析&#xff1a;解析器&#xff08;Parser&#xff09;部分FFmpeg的HEVC解码器源码简单分析&#xff1a;解码器主干部分FFmpeg的…

C#输入姓名或者拼音码(姓名的首字母,大小写均可)进行快速模糊查找

第一步:在SQL Server中编写获取输入汉字的拼音码函数,详见SQL Server编写函数获取汉字的拼音码(首字母) 第二步:增加含有拼音码字段的人员记录 private void button_Insert_Click(object sender, EventArgs e){string NAME = textBox_name.Text.Trim();string SEX = com…

趣学算法之哥德巴赫猜想的实现

1、哥德巴赫猜想 任意大于2的偶数,都可以表示成为2个素数之和 2、代码实现 #include <iostream> #include <math.h>using namespace std;//判断是否是质数 bool isPrime(int n) {if (n < 2)return false;if (n == 2)return true;for (int i = …

.NET 产品组问卷调查|和我们分享你的 .NET 使用情况

作为一名 .NET 开发者&#xff0c;是什么让你开始学习 .NET&#xff1f;在你看来 .NET 在哪些场景下最有效&#xff1f;在平时的工作或学习中&#xff0c;你都在哪里学习 .NET 资源&#xff1f;你更希望在哪里看到更多 .NET 本地化内容&#xff1f;你觉得 .NET 的社区推动力如何…

win7 部署tomcat

1,下载 jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3-download-1501626.html 2,下载tomcat:http://tomcat.apache.org/download-70.cgi 3,各自安装 4&#xff0c;配置环境变量&#xff1a; JAVA_HOMEC:\Program Files\Java\jdk1.7.0_03JRE_HOME C:\P…

C#+SQL Server数据库系统操作日志的实现完整案例

在开发数据库系统时,通常需要添加系统日志功能。系统日志是用来记录用户、管理员等对系统的操作记录,系统操作日志的实现方式有很多,本文基于C#和SQL Server数据库,通过设计日志记录表、编写操作记录存储过程、前端调用与展示结果等过程,实现操作日志功能完整程序设计流程…