一、三种创建WebAPI应用的区别

1、WebHost.CreateDefaultBuilder():

  Net Core 2.x(2.1.x、2.2.x);

2、Host.CreateDefaultBuilder():

  Net Core 3.x、Net5;

从WebHost迁移到Host时Service的写法变化最大,刚出来的挺长一段时间里第三方NuGet的兼容性没跟上,好多第三方库不可用。

3、WebApplication.CreateBuilder():

  Net6、Net7,封装了WebHost和Host;

1)WebApplicationBuilder主要负责 4 项工作:

  使用 builder.Configuration 添加配置。

  使用 builder.Services 添加服务

  使用 builder.Logging 配置日志

  配置 IHostBuilder 和 IWebHostBuilder

2)WebApplication提供的部分接口
  • IHost - 用来启动和停止 Host
  • IApplicationBuilder - 用于建立中间件管道
  • IEndpointRouteBuilder - 用于添加路由端点
3)其他知识:

  app.UseRouting()、app.UseRouter()、app.UseEndpoints 在webapi(不带页面的WebApi应用)中不是必须的,使用mvc或者Razor时会用到。无页面的webapi无特殊需求不会用到。

  app.UseStaticFiles();可有可无;

  app.MapRazorPages();为Razor需要;

  app.UseMvc();为Mvc需要;

  app.MapControllers为WebAPI需要;

作者:꧁执笔小白꧂