中间件

发布时间 2023-08-16 21:11:07作者: IAMLCW

什么是中间件?

中间件是位于客户端和服务器之间的一个处理接口请求的组件。它为我们提供了一种灵活、可扩展和可维护的方式来处理这些请求和响应

中间件可以被视为一种管道,用于对HTTP请求和响应进行处理、过滤,常见的有跨域,静态文件。

中间件分为内置中间件和自定义中间件,中间件按照顺序依次执行

执行顺序一般如下:

中间件的作用:

中间件可以用于处理请求,例如跨域,验证令牌,静态文件等。通过在中间件中实现这些功能,我们可以确保只有经过验证的用户才能访问受保护的数据。

中间件还可以对响应进行处理,通过中间件,我们可以实现各种响应处理以便与客户端进行更好的交互。中间件还可以用于捕获和处理发生在应用程序中的错误,

并返回适当的错误响应,从而增强程序的稳定性和可靠性。 

我们也可以创建自定义中间件

比如可以创建一个令牌验证的中间件

public class MyMiddleware : IMiddleware
    {
        public MyMiddleware(IUserService user,MyContext context)
        {
            User = user;
            Context = context;
        }

        public IUserService User { get; }
        public MyContext Context { get; }

        public Task InvokeAsync(HttpContext context, RequestDelegate next)
        {
            //获取调用的接口地址
            var qurl = context.Request.Path.Value.ToLower();

            //需要进行验证地址
            var urlshop = "/api/All/GetShopCart".ToLower();

            //判断地址是否相同
            if (urlshop==qurl)
            {
                string token = context.Request.Headers["token"].ToString();
                if (!User.GetToken(token))
                {
                    //阻止访问
                    return Task.CompletedTask;
                }
            }
            //可以访问
            return next(context);
        }
    }

然后在Program.cs中添加中间件

app.UseMiddleware(typeof(MyMiddleware));

这样,就添加了一个验证令牌的中间件。