.NET7 Preview4之MapGroup

本文展示了如何在 ASP.NET Core 应用中实现路由分组和使用 Swagger 进行 API 文档化。通过 `MapGroup` 和 `WithTags` 方法,代码创建了 `/test` 的 GET 和 POST 路由,并定义了一个数据操作的分组,包括查询、删除、添加和修改数据的方法。同时,应用在开发环境中启用 Swagger UI 供接口测试。
摘要由CSDN通过智能技术生成

这篇是“闻(看)香(码)识(学)女(技)人(术)”。

这也是一个有意思的功能,路由分组,啥也不说了,看代码看结果:

using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.AspNetCore.OpenApi;


var builder = WebApplication.CreateBuilder(args);
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}
app.MapGet("/test", () =>
{
})
.WithTags("TestApi");


app.MapPost("/test", () =>
{
})
.WithTags("TestApi");


app.MapGroup("/data").MapDataApi();//.RequireAuthorization();
app.Run();


/// <summary>
/// 分组扩展类
/// </summary>
public static class DataApi
{
    public static GroupRouteBuilder MapDataApi(this GroupRouteBuilder group)
    {
        group.MapGet("/", Query);
        group.MapDelete("/{id}", Remove);
        group.MapPost("/", Add);
        group.MapPut("/", Modify).WithOpenApi();
        return group;
    }
    /// <summary>
    /// 查询数据
    /// </summary>
    /// <returns></returns>
    public static async Task<JsonHttpResult<List<Data>>> Query()
    {
        await Task.Delay(TimeSpan.FromMicroseconds(1));
        return TypedResults.Json<List<Data>>(new List<Data> {
            new Data { ID = 1, Name = "test01" },
            new Data { ID = 2, Name = "test02" },
        });
    }
    /// <summary>
    /// 删除
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    public static async Task<Ok> Remove(int id)
    {
        await Task.Delay(1);
        return TypedResults.Ok();
    }
    /// <summary>
    /// 添加
    /// </summary>
    /// <param name="data"></param>
    /// <returns></returns>
    public static async Task<Created<string>> Add(Data data)
    {
        await Task.Delay(1);
        return TypedResults.Created<string>("/", "ok");
    }
    /// <summary>
    /// 修改
    /// </summary>
    /// <param name="data"></param>
    /// <returns></returns>
    public static async Task<Ok> Modify(Data data)
    {
        await Task.Delay(1);
        return TypedResults.Ok();
    }
}


public class Data
{
    public int ID { get; set; }
    public string? Name { get; set; }
}

看图:

873b46082800f5f0408875cea84bb24c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值