首页 文章详情

.NET 云原生架构师训练营(模块二 基础巩固 HTTP管道与中间件)--学习笔记

DotNet NB | 379 2020-12-23 22:10 0 0 0
UniSMS (合一短信)

2.3.2 Web API -- HTTP管道与中间件

  • 管道

  • 中间件

ASP.NET Core 中间件:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/?view=aspnetcore-5.0

中间件是一种装配到应用管道以处理请求和响应的软件。每个组件:

  • 选择是否将请求传递到管道中的下一个组件。

  • 可在管道中的下一个组件前后执行工作。

请求委托用于生成请求管道。请求委托处理每个 HTTP 请求。

管道

中间件

Startup.cs

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}

// 默认启用 https
app.UseHttpsRedirection();
app.UseRouting();
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}

自定义的中间件

app.Run(async context =>
{
await context.Response.WriteAsync("my middleware");
});

启动程序,输出如下:

my middleware

使用 app.Run 之后管道中止,不会继续执行 app.UseEndpoints,如果想要继续执行,可以使用 app.Use 并调用 next()

app.Use(async (context, next) =>
{
await context.Response.WriteAsync("my middleware 1");
await next();
});

app.Run(async context =>
{
await context.Response.WriteAsync("my middleware 2");
});

启动程序,输出如下:

my middleware 1my middleware 2

GitHub源码链接:

https://github.com/MINGSON666/Personal-Learning-Library/tree/main/ArchitectTrainingCamp/HelloApi

课程链接

.NET云原生架构师训练营讲什么,怎么讲,讲多久


欢迎各位读者加入微信群一起学习交流,
在公众号后台回复“加群”即可~~


good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter