MASAMinimalAPI:创建MinimalAPI项目

项目准备

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-1683276829564image-20230505162450695

提问:为什么我们只写了一个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

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MASAMinimalAPI:创建MinimalAPI项目 - Python技术站

(0)
上一篇 2023年5月5日
下一篇 2023年5月5日

相关文章

  • 如何使用C#读写锁ReaderWriterLockSlim

    下面是详细讲解如何使用C#读写锁ReaderWriterLockSlim的攻略: 什么是ReaderWriterLockSlim? ReaderWriterLockSlim是一个线程同步机制,用于实现在多个线程之间共享对某个资源的读取和写入。它可以提供高性能的读取操作和相对低性能的写操作。 使用ReaderWriterLockSlim可以控制多个线程同时读取…

    C# 2023年5月15日
    00
  • C# 实现简单打印的实例代码

    C# 实现简单打印的实例代码 简介 在 C# 中,我们可以通过 System.Drawing.Printing 命名空间提供的 PrintDocument 类来实现简单的文本打印。 步骤 1. 引入命名空间 使用 PrintDocument 类需要引入 System.Drawing.Printing 命名空间。 using System.Drawing.Pr…

    C# 2023年5月31日
    00
  • C#基于Socket实现多人聊天功能

    下面为您介绍详细的”C#基于Socket实现多人聊天功能”攻略。 介绍 聊天功能是现代各种即时通信软件的核心功能,很多开发者也想在自己的应用中添加聊天功能。本攻略将通过C#基于Socket实现多人聊天功能。 准备工作 .Net开发环境,带有Visual Studio的更好,如果没有可以在官网上下载安装。 具有Socket编程知识。 实现步骤 第一步:创建So…

    C# 2023年6月7日
    00
  • C#中Dictionary几种遍历的实现代码

    下面是“C#中Dictionary几种遍历的实现代码”的完整攻略: 1. Dictionary简介 Dictionary是C#中常用的字典数据结构,它存储的是键值对(key-value pairs),其中每一个key在集合中是唯一的,对应一个value。Dictionary允许快速查找value,因为它内部维护了一个根据key进行快速查找的哈希表。 2. D…

    C# 2023年6月7日
    00
  • 使用chrome控制台作为.Net的日志查看器

    使用 Chrome 控制台作为 .NET 的日志查看器攻略 在 .NET 应用程序中,可以使用 Chrome 控制台作为日志查看器。本攻略将介绍如何使用 Chrome 控制台作为 .NET 的日志查看器。 步骤 步骤1:安装 Serilog 首先,我们需要安装 Serilog。Serilog 是一个 .NET 日志库,可以将日志输出到多个目标,包括控制台、文…

    C# 2023年5月17日
    00
  • 使用C#连接SQL Server的详细图文教程

    我很乐意为您提供“使用C#连接SQL Server的详细图文教程”攻略。 简介 在使用C#开发应用程序时,经常需要与数据库进行交互,而SQL Server是一个广泛使用的关系数据库管理系统。这里将为您提供使用C#连接SQL Server的详细图文教程,以帮助您完成这项任务。 步骤 步骤1:安装SQL Server和SQL Server Management …

    C# 2023年6月3日
    00
  • 轻松学习C#的foreach迭代语句

    当我们需要遍历数组、集合或者其他集合类的数据时,就需要使用foreach迭代语句。在C#中,foreach语句是用于迭代访问集合(数组、字符串或其他集合类型)中的每个元素的最简单的方法之一。下面是一些关于使用foreach语句进行迭代的技巧和示例: 1. foreach语句语法格式 C#中foreach的语法非常简单。下面是foreach语法的信息: for…

    C# 2023年6月1日
    00
  • C# 泛型的简单理解(安全、集合、方法、约束、继承)分享

    下面我来详细讲解一下 C# 泛型的相关知识。 什么是泛型 泛型是 C# 语言的一个重要特性,它能使你编写出更加灵活和可重用的代码。泛型和类、接口、委托和方法一样,是 C# 中的一种类型。它允许你定义一种类型,这种类型可以在使用时指定其具体的类型参数。这相当于抽象出了一种通用的类型,只有在具体使用时才会确定其具体类型。 泛型的优势 安全性:泛型能提供编译时类型…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部