首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >.NET 云原生架构师训练营(模块二 基础巩固 HTTP管道与中间件)--学习笔记

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

作者头像
郑子铭
发布2021-01-13 15:57:22
发布2021-01-13 15:57:22
3160
举报

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

代码语言:javascript
复制
// 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();
    });
}

自定义的中间件

代码语言:javascript
复制
app.Run(async context =>
{
    await context.Response.WriteAsync("my middleware");
});

启动程序,输出如下:

代码语言:javascript
复制
my middleware

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

代码语言:javascript
复制
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");
});

启动程序,输出如下:

代码语言:javascript
复制
my middleware 1my middleware 2

GitHub源码链接:

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

课程链接

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet NB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.3.2 Web API -- HTTP管道与中间件
    • 管道
    • 中间件
      • 自定义的中间件
    • GitHub源码链接:
  • 课程链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档