在以前的MVC引用程序中,控制器负责接收输入信息、执行、编排操作并返回响应,它是一个功能齐全的框架,它提供了过滤器、内置了模型绑定与验证,并提供了很多可扩展的管道,但它偏重,不像其它语言是通过更加简洁的方式来开启Web之旅的,因此在.Net6.0官方引入了MinimalAPIs,即最小API,与MVC相比,它足够的简洁,适合小型服务来使用,下面就让我们看看如何使用MinimalAPI来开发一个web应用程序

入门

下面我们来看一下官方提供的MinimalAPI是如何使用的

  1. 新建ASP.NET Core 空项目Assignment.MinimalApiDemo
dotnet new web -o Assignment.MinimalApiDemo
cd Assignment.MinimalApiDemo
  1. 增加一个Get请求,修改Program
app.MapGet("/test", () => "Test Success!");

根据需求,自行增加Get (MapGet)、Post (MapPost)、Put (MapPut)、Delete (MapDelete)方法即可,完整代码如下:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/test", () => "Test Success!");

Masa版MinimalAPI

随着我们的服务变得越来越多,这些服务全部被堆积在Program中,这样岂不是变成流水账式的代码?那怎么做才能使得我们的代码更加美观呢?

下面我们就来看一下Masa提供的MinimalAPIs是如何来使用的

  1. 选中项目Assignment.MinimalApiDemo,并安装Masa.Contrib.Service.MinimalAPIs
dotnet add package Masa.Contrib.Service.MinimalAPIs --version 0.6.0-preview.13
  1. 注册Masa版的MinimalAPI,修改Program
var app = builder.AddServices();
  1. 新增加一个用户的服务,新增UserService
public class UserService : ServiceBase
{
    public IResult Add(RegisterUserRequest request)
    {
        //模拟添加用户
        return Results.Ok();
    }
}

到这里已经结束了,可能会有小伙伴十分的疑惑,Masa提供的方案让我有点摸不着头脑,但项目运行后就会发现在Swagger上多了一个服务

image.png

细心的小伙伴发现了,这个服务好像是我们新增的添加用户服务,但链接地址为什么是api/v1/Users

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/zhenlei520/p/16715428.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!