MASAMinimalAPI:创建MinimalAPI项目

masaminimalapi,创建,minimalapi,项目 · 浏览次数 : 95

小编点评

**项目准备** 1. 创建项目,选择 **WebApi**。取消勾选使用控制器。创建 **minimal API** 项目 2. 创建成功后 **MinimalAPI** 的接口直接写在 `program.cs` 中 3. 导入 **nuget** 包:`Masa.Contrib.Service.MinimalAPIsMinimalAPI改造1` **程序代码** ```csharp using Masa.Contrib.Service.MinimalAPIsMinimalAPI; public class UserService : ServiceBase { // ... public async Task PostWeather() { return null; } // ... } ``` **接口解析** 由于我们只编写了 `app.MapGet` 方法,因此生成了 **三个** 接口: 1. `app.MapGet("/api/weatherforecast", GetWeatherForecast)` 2. `app.MapGet("/api/weatherforecast", PostWeather)` 3. `app.MapGet("/api/weatherforecast", GetWeatherForecast)` **原因** `app.MapGet` 方法创建了一个路由,而其他方法创建了两个路由。

正文

项目准备

1.创建项目,选择webapi。取消勾选使用控制器。创建minimal Api项目

image-1683276799909

2.创建成功后MinimalAPI的接口直接写在program.cs中

image-1683276808400

3.引入nuget包:Masa.Contrib.Service.MinimalAPIs

image-1683276817049

MinimalAPI改造

1. 在program.cs中加入以下内容

将原有的

var app = builder.Build();

换成

var app = builder.Services.AddServices(builder);

2.自定义Service并继承ServiceBase

1.我们创建的一个自定义service如下:

    public class UserService : ServiceBase {
        public UserService() : base() {
            App.MapGet("/api/weatherforecast", GetWeatherForecast);
        }
        public async Task<WeatherForecast[]> PostWeather() {
            return null;
        }
        public async Task< WeatherForecast[]> GetWeatherForecast() {
            var summaries = new[]
            {
                "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
            };
            var forecast = Enumerable.Range(1, 5).Select(index =>
        new WeatherForecast
        (
            DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
            Random.Shared.Next(-20, 55),
            summaries[Random.Shared.Next(summaries.Length)]
        ))
        .ToArray();
            return forecast;
        }

        public async Task<IResult> Register() {
            return Results.Ok("注册成功");
        }
    }
    public record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary) {
        public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
    }

2.构建成功,查看swagger

image-1683276829564

提问:为什么我们只写了一个app.MapGet,却生成了三个接口

下一篇:MASA MinimalAPI源码解析:为什么我们只写了一个app.MapGet,却生成了三个接口MASA MinimalAPI源码解析:为什么我们只写了一个app.MapGet,却生成了三个接口

阅读如遇样式问题,请前往个人博客浏览: https://www.raokun.top
拥抱ChatGPT,国内访问网站:https://ai.terramours.site
开源项目地址:https://github.com/firstsaofan/TerraMours

与MASAMinimalAPI:创建MinimalAPI项目相似的内容: