gpt4 book ai didi

asp.net-core - UseRouter 和 UseEndpoints 之间的区别

转载 作者:行者123 更新时间:2023-12-05 06:21:07 25 4
gpt4 key购买 nike

我想在不使用 Controller 的情况下处理对 ASP.NET Core 中特定路径的请求。

看来我现在有两个选择:

使用 app.UseRouter(r => r.MapPost(...)):

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouter(r => {
r.MapPost("foo/{fooId:int}/bar", (request, response, routeData) =>
{
// My logic
response.StatusCode = StatusCodes.Status200OK;
return Task.CompletedTask;
});
});
}

使用 app.UseEndpoints(e => e.MapPost(...)):

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();

app.UseEndpoints(endpoints =>
{
endpoints.MapPost("foo/{fooId:int}/bar", context =>
{
// My logic
context.Response.StatusCode = StatusCodes.Status200OK;
return Task.CompletedTask;
});
});
}

这两个选项的行为似乎相同。

这两者之间的主要区别是什么,我应该使用哪一个?

最佳答案

据我了解:

  • UseRouter 是旧的路由方式(定义在.net core 2.1)
  • UseEndpoints 是新的路由方式(在 .net core 3.0 中定义)

UseEndpoints 支持元数据、context.GetEndpoint() 和其他强大的功能。所以这是首选。

更新:从 .net 6 开始,不再推荐这两种方法,取而代之的是 Minimal API .

关于asp.net-core - UseRouter 和 UseEndpoints 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60108687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com