首页 > 其他分享 >.NET7 Preview4之MapGroup

.NET7 Preview4之MapGroup

时间:2022-12-05 20:44:30浏览次数:47  
标签:Task group Preview4 app static NET7 MapGroup Data public

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

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

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

看图:

  想要更快更方便的了解相关知识,可以关注微信公众号

标签:Task,group,Preview4,app,static,NET7,MapGroup,Data,public
From: https://www.cnblogs.com/axzxs2001/p/16953439.html

相关文章

  • MiniAPI:.NET7 Preview4之MiniAPI更新总览
    一觉醒来,发现微软带来了.NET7Preview4的更新,本次更新关于MiniAPI的还不少,难以掩饰的喜悦心情,促使我尽快把这个消息分享给大家,那下来我们看一下一共带来了哪些关于MiniA......
  • .NET7之MiniAPI(特别篇):.NET7 Preview3
    .NET7的第三个预览版发布了,同样带来了miniapi的更新,这次带来了路由过滤器,与mvc版的action过滤器相似。具体见https://devblogs.microsoft.com/dotnet/asp-net-core-up......
  • .NET7之MiniAPI(特别篇):.NET7 Preview3
    .NET7的第三个预览版发布了,同样带来了miniapi的更新,这次带来了路由过滤器,与mvc版的action过滤器相似。具体见https://devblogs.microsoft.com/dotnet/asp-net-core-u......
  • .NET7之MiniAPI(特别篇):.NET7 Preview3
    .NET7的第三个预览版发布了,同样带来了miniapi的更新,这次带来了路由过滤器,与mvc版的action过滤器相似。具体见https://devblogs.microsoft.com/dotnet/asp-net-core-u......
  • 测试篇 c#net7nativeAOT桌面图标位置备份器
    项目备份windows桌面的图标位置为jsonc#项目是net7nativeAOT的框架,内有json生成器的处理.编译方式在.csproj文件的路径上面(删除路径)输入cmd,回车:dotnetpub......
  • 使用.NET7和C#11打造最快的序列化程序-以MemoryPack为例
    使用.NET7和C#11打造最快的序列化程序-以MemoryPack为例 译者注本文是一篇不可多得的好文,MemoryPack的作者neuecc大佬通过本文解释了他是如何将序列化程序性能提......
  • 使用.NET7和C#11打造最快的序列化程序-以MemoryPack为例
    译者注本文是一篇不可多得的好文,MemoryPack的作者neuecc大佬通过本文解释了他是如何将序列化程序性能提升到极致的;其中从很多方面(可变长度、字符串、集合等)解释了一......
  • .NET6之MiniAPI(特别篇):.NET7 Preview1&2
    在写.NET6MiniAPI的时候,.NET7的新功能也在发展,这里就用特别篇把新加的特点分享给大家,本篇先说Preview1和2特点1文件上传,demo如下:varbuilder=WebApplication......
  • .NET6之MiniAPI(特别篇):.NET7 Preview1&2
    在写.NET6MiniAPI的时候,.NET7的新功能也在发展,这里就用特别篇把新加的特点分享给大家,本篇先说Preview1和2特点1文件上传,demo如下:varbuilder=WebApplic......
  • .NET6之MiniAPI(特别篇):.NET7 Preview1&2
    在写.NET6MiniAPI的时候,.NET7的新功能也在发展,这里就用特别篇把新加的特点分享给大家,本篇先说Preview1和2特点1文件上传,demo如下:varbuilder=WebApplic......