在以前的MVC參照程式中,控制器負責接收輸入資訊、執行、編排操作並返回響應,它是一個功能齊全的框架,它提供了過濾器、內建了模型繫結與驗證,並提供了很多可延伸的管道,但它偏重,不像其它語言是通過更加簡潔的方式來開啟Web之旅的,因此在.Net6.0官方引入了MinimalAPIs,即最小API,與MVC相比,它足夠的簡潔,適合小型服務來使用,下面就讓我們看看如何使用MinimalAPI來開發一個web應用程式
下面我們來看一下官方提供的MinimalAPI
是如何使用的
Assignment.MinimalApiDemo
dotnet new web -o Assignment.MinimalApiDemo
cd Assignment.MinimalApiDemo
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!");
MinimalAPI
隨著我們的服務變得越來越多,這些服務全部被堆積在Program
中,這樣豈不是變成流水賬式的程式碼?那怎麼做才能使得我們的程式碼更加美觀呢?
下面我們就來看一下Masa提供的MinimalAPIs
是如何來使用的
Assignment.MinimalApiDemo
,並安裝Masa.Contrib.Service.MinimalAPIs
dotnet add package Masa.Contrib.Service.MinimalAPIs --version 0.6.0-preview.13
MinimalAPI
,修改Program
var app = builder.AddServices();
UserService
類public class UserService : ServiceBase
{
public IResult Add(RegisterUserRequest request)
{
//模擬新增使用者
return Results.Ok();
}
}
到這裡已經結束了,可能會有小夥伴十分的疑惑,Masa提供的方案讓我有點摸不著頭腦,但專案執行後就會發現在Swagger上多了一個服務
細心的小夥伴發現了,這個服務好像是我們新增的新增使用者服務
,但連結地址為什麼是api/v1/Users