编程语言
首页 > 编程语言> > Ultimate ASP.NET CORE 6.0 Web API --- 读书笔记(1)

Ultimate ASP.NET CORE 6.0 Web API --- 读书笔记(1)

作者:互联网

Project Configuration

本文内容来自书籍: Marinko Spasojevic - Ultimate ASP.NET Core Web API - From Zero To Six-Figure Backend Developer (2nd edition)

1.2 launchSettings.json File Configuration

1.3 Program.cs Class Explanations

与.NET 5相比较,这个文件的变化在

var builder = WebApplication.CreateBuilder(args);

这个builder的类型是WebApplicationBuilder,然后这个类主要负责

var builder = WebApplication.CreateBuilder(args);

// 注册服务

var app = builder.Build();

// 注册中间件

1.4 扩展方法和CORS配置

在注册服务的时候,往往会有很多配置,那么为了让Program.cs这个文件看起来比较整洁,我们可以给WebApplicationBuilder编写扩展方法,来替代直接写在Program.cs的配置

然后是写一个跨域配置为例子(一般我会用Nginx来解决跨域)

  1. 首先是创建一个静态类用以编写扩展方法
    Extensions/ServiceExtensions.cs

  2. 然后在里面注册服务

// Extensions/ServiceExtensions.cs

public static class ServiceExtensions
{
    public static void ConfigureCors(this IServiceCollection service) =>
        service.AddCors(options =>
        {
            options.AddPolicy("CorsPolicy", builder =>
                builder.AllowAnyOrigin()
                    .AllowAnyMethod()
                    .AllowAnyHeader());
        });
}
  1. 现在,服务器允许所有的主机访问,当然也可以用WithOrigins()方法来指定主机地址,使用WithMethods()指定HTTP方法,`WithHeaders()指定请求头

1.6 Additional Code in the Program Class

微软官网提示,添加中间件的顺序很重要

1.7 Environment-Based Settings

需要区分developmentproduction环境变量,因为在不同环境,它们的地址、端口、密码、数据库等都不一样

所以我们需要将它们分割开,所以就有了项目创建时的两个配置文件

appsettings.{EnvironmentSuffix}.json文件会把appsettings.json的配置覆盖

通过ASPNETCORE_ENVIRONMENT这个环境变量来设置使用哪一个配置文件

1.8 ASP.NET Core Middleware

其实中间件可以认为是一个代码区域环绕在requestsresponses外围

然后按照注册的顺序,不断调用next方法向下传递,直到一个中间件不再调用即终点

添加自定义的中间件,有两种:

public static IApplicationBuilder Use(this IApplicationBuilder app,Func<HttpContext, Func<Task>, Task> middleware);

不能在Use中,写入了responses然后继续调用next,这样会报错

public static IApplicationBuilder Map(this IApplicationBuilder app,PathString pathMatch, Action<IApplicationBuilder> configuration)
public static IApplicationBuilder MapWhen(this IApplicationBuilder app, Func<HttpContext, bool> predicate, Action<IApplicationBuilder> configuration)

标签:CORE,ASP,读书笔记,builder,配置,中间件,IApplicationBuilder,方法,app
来源: https://www.cnblogs.com/huangwenhao1024/p/16383157.html