MASAMinimalAPI:创建MinimalAPI项目

yizhihongxing

项目准备

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# 正则表达式常用的符号和模式解析(最新推荐)

    C# 正则表达式常用的符号和模式解析(最新推荐) 简介 正则表达式是面向“字符”模式的,由字符组成的一种检索模式。在C#中,对正则表达式有很好的支持,我们可以使用System.Text.RegularExpressions.Regex类进行正则表达式的匹配和操作。 虽然正则表达式的语法看似复杂,但是当你掌握了其中的一些常用的符号,你会发现正则表达式变得简单易…

    C# 2023年6月6日
    00
  • 在.NetCore中 DDD中基于mediatr实现领域事件并结合EFCore进行二次封装

    [源代码地址https://github.com/junkai-li/NetCoreKevin]基于NET6搭建跨平台WebApi架构支持单点登录、多缓存、自动任务、分布式、多租户、日志、授权和鉴权 、网关 注册与发现、CAP集成事件、领域事件、 docker部署 **首要要理解什么是领域事件?**领域事件是指发生在特定领域中的事件,是你希望在同一个领域中其…

    C# 2023年5月5日
    00
  • jQuery uploadify在谷歌和火狐浏览器上传失败的解决方案

    下面是详细讲解“jQueryuploadify在谷歌和火狐浏览器上传失败的解决方案”的完整攻略。 问题描述 在使用jQueryuploadify进行图片上传的过程中,在谷歌和火狐浏览器上会出现上传失败的情况,具体表现为无法选择上传文件和上传进度条不显示等问题。 解决方案 1. 修改uploadify.js文件中的swf文件路径 修改uploadify.js文…

    C# 2023年5月15日
    00
  • C#中动态显示当前系统时间的实例方法

    下面我将为您详细讲解在C#中动态显示当前系统时间的实例方法的完整攻略。 步骤1:创建新的控制台应用程序 在Visual Studio中创建新的控制台应用程序,命名为“DynamicTime”。 步骤2:添加必要的命名空间 为了使用C#中的DateTime类,我们需要在程序中添加System命名空间。 using System; 步骤3:创建主方法 在Main…

    C# 2023年6月1日
    00
  • C++学习之Lambda表达式的用法详解

    C++学习之Lambda表达式的用法详解 在本文中,我们将详细介绍C++中Lambda表达式的用法和使用场景。 什么是Lambda表达式? Lambda表达式是一种在C++11标准中引入的新功能,它允许我们将一个函数作为一个变量来使用。Lambda表达式相当于一种无名函数,可以在需要的时候定义,并且和普通函数一样具有函数的特性,包括参数、返回值、局部变量等。…

    C# 2023年6月8日
    00
  • Entity Framework Core基于数据模型创建数据库

    当使用Entity Framework Core (EF Core) 来开发应用的时候,我们经常需要创建数据库。在基于EF Core的开发中,我们可以通过数据模型(Model)来创建数据库。 下面是详细的操作步骤: 1.创建ASP.NET Core Web应用 首先创建一个名为“EFCoreDemo”的ASP.NET Core Web应用。可以通过使用Vis…

    C# 2023年5月31日
    00
  • Windows系统中使用C#编写蓝牙通信程序的简单实例

    要在Windows系统中使用C#编写蓝牙通信程序,需要以下步骤: 步骤一:安装必要的开发环境 首先需要安装Visual Studio开发环境,版本最好是2015以上,也需要安装.NET Framework,版本最好是4.0以上。 步骤二:添加蓝牙开发包 需要在Visual Studio中添加蓝牙开发包,具体操作如下: 打开Visual Studio,新建项目…

    C# 2023年6月3日
    00
  • C#多线程之Semaphore用法详解

    C#多线程之Semaphore用法详解 概述 Semaphore 用来控制同时访问特定资源的线程数量,可以用来实现线程的同步和互斥。Semaphore 维护了一个计数器,表示可用的资源数量。每个线程在访问资源之前都需要对 Semaphore 进行等待,如果 Semaphore 的计数器大于 0,则线程可以继续执行,同时 Semaphore 的计数器会减 1,…

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