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-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

原文链接:https://www.cnblogs.com/raok/p/17374688.html

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

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

相关文章

  • c# StringBuilder.Replace 方法 (Char, Char, Int32, Int32)

    让我来详细讲解一下C#中的StringBuilder.Replace方法。 方法概述 StringBuilder.Replace方法的作用是将指定位置处的字符或一段指定长度的字符替换为另一个字符。该方法的定义为: public StringBuilder Replace(char oldChar, char newChar, int startIndex, …

    C# 2023年5月15日
    00
  • ASP.NET Core使用AutoMapper组件

    ASP.NET Core是一个跨平台、开源的框架,被广泛应用于Web应用程序开发。AutoMapper是一个目前非常流行的实体映射组件,可以将一个实体类的属性映射到另一个实体类中相同或者不同的属性上。 使用AutoMapper组件的步骤如下: 步骤一:安装AutoMapper包 在Visual Studio中,可以通过Nuget Package Manage…

    C# 2023年6月6日
    00
  • C#实现获取本地内网(局域网)和外网(公网)IP地址的方法分析

    C#实现获取本地内网(局域网)和外网(公网)IP地址的方法分析 概述 在C#中,获取本机IP地址是非常常见的功能,但如何获取本机所处的网络IP地址呢?本文将详细讲解获取本地内网(局域网)和外网(公网)IP地址的方法分析,并提供两条示例说明。 获取本地内网IP地址 获取本地内网(局域网)IP地址可以使用System.Net.NetworkInformation…

    C# 2023年6月7日
    00
  • .NET Core应用类型(Portable apps & Self-contained apps)

    在.NET Core中,有两种应用类型:Portable apps和Self-contained apps。本攻略将深入探讨这两种应用类型,并提供两个示例说明。 Portable apps Portable apps是一种.NET Core应用类型,它依赖于.NET Core运行时。Portable apps可以在任何安装了.NET Core运行时的计算机上…

    C# 2023年5月17日
    00
  • JS正则替换去空格的方法

    JS正则替换去空格的方法可以通过正则表达式的特性,通过匹配空格符并替换为空字符来实现。具体步骤如下: 使用正则表达式创建一个匹配空格的模式。空格包括空格符、制表符、换行符等。 javascript var regex = /\s+/g; 在这个例子中,使用 \s+ 来匹配一个或多个空格符,选用全局匹配模式 g,可以匹配整个文本。 通过 string.repl…

    C# 2023年6月8日
    00
  • C#实现线程安全的简易日志记录方法

    下面我将详细讲解“C#实现线程安全的简易日志记录方法”的完整攻略。 1. 什么是线程安全日志记录方法? 在多线程程序中,多个线程同时进行日志写入时会引发竞争条件,可能导致丢失部分日志或产生不一致的日志。为了解决这个问题,我们需要使用线程安全的日志记录方法,保证每个线程可以正确地写入自己的日志信息,而不会与其他线程产生冲突。 线程安全的日志记录方法可以保证在多…

    C# 2023年6月1日
    00
  • C# Path.GetFileName()方法: 获取指定路径字符串的文件名和扩展名

    C#中Path.GetFileName()的作用与使用方法 Path.GetFileName() 是C#中 System.IO 命名空间提供的方法之一,它可以返回指定路径字符串的文件名和扩展名,并移除该路径字符串中的所有其他信息。它不会返回目录名称。 使用 Path.GetFileName() 方法时,需要引用System.IO 命名空间,格式如下: usi…

    C# 2023年4月19日
    00
  • C#装箱和拆箱的原理介绍

    了解 C# 的装箱和拆箱是编程中的基本知识之一。本文将介绍什么是装箱和拆箱,它们在 C# 中的用途以及它们的原理。 什么是装箱和拆箱 装箱和拆箱 (boxing and unboxing) 是 .NET 框架中的一个重要概念。它用于将值类型 (value type) 转换成引用类型 (reference type),或将引用类型转换成值类型。在 C# 编程中…

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