一、三种创建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
- 用来启动和停止 HostIApplicationBuilder
- 用于建立中间件管道IEndpointRouteBuilder
- 用于添加路由端点
3)其他知识:
app.UseRouting()、app.UseRouter()、app.UseEndpoints 在webapi(不带页面的WebApi应用)中不是必须的,使用mvc或者Razor时会用到。无页面的webapi无特殊需求不会用到。
app.UseStaticFiles();可有可无;
app.MapRazorPages();为Razor需要;
app.UseMvc();为Mvc需要;
app.MapControllers为WebAPI需要;
作者:꧁执笔小白꧂