翼度科技»论坛 编程开发 .net 查看内容

MASAMinimalAPI:创建MinimalAPI项目

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
项目准备

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


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


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


MinimalAPI改造

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

将原有的
  1. var app = builder.Build();
复制代码
换成
  1. var app = builder.Services.AddServices(builder);
复制代码
2.自定义Service并继承ServiceBase

1.我们创建的一个自定义service如下:
  1.     public class UserService : ServiceBase {
  2.         public UserService() : base() {
  3.             App.MapGet("/api/weatherforecast", GetWeatherForecast);
  4.         }
  5.         public async Task<WeatherForecast[]> PostWeather() {
  6.             return null;
  7.         }
  8.         public async Task< WeatherForecast[]> GetWeatherForecast() {
  9.             var summaries = new[]
  10.             {
  11.                 "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
  12.             };
  13.             var forecast = Enumerable.Range(1, 5).Select(index =>
  14.         new WeatherForecast
  15.         (
  16.             DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
  17.             Random.Shared.Next(-20, 55),
  18.             summaries[Random.Shared.Next(summaries.Length)]
  19.         ))
  20.         .ToArray();
  21.             return forecast;
  22.         }
  23.         public async Task<IResult> Register() {
  24.             return Results.Ok("注册成功");
  25.         }
  26.     }
  27.     public record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary) {
  28.         public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
  29.     }
复制代码
2.构建成功,查看swagger


提问:为什么我们只写了一个app.MapGet,却生成了三个接口
MASA MinimalAPI源码解析:为什么我们只写了一个app.MapGet,却生成了三个接口:https://note.raokun.top/archives/masaminimalapi-yuan-ma-jie-xi--wei-shen-me-wo-men-zhi-xie-le-yi-ge-appmapget-que-sheng-cheng-le-san-ge-jie-kou
阅读如遇样式问题,请前往个人博客浏览: https://note.raokun.top

拥抱ChatGPT,国内访问网站:https://ai.firstsaofan.top

开源项目地址:https://github.com/firstsaofan/TerraMours


来源:https://www.cnblogs.com/raok/archive/2023/05/05/17374688.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具