1.简单介绍
.NET 9 中 OpenAPI 也有一些变化,这边也简单体验一下.NET 9 中的OpenAPI的变化,具体的话,可以参考如下文章,谢谢
.NET 9 OpenAPI
2. .NET 8的OpenAPI
这边以Visual Studio 2022中的ASP.NET Core Minimal API模板来创建项目,
2.1 创建项目并配置OpenAPI
1)创建项目时候,默认勾选 Enable OpenAPI support
2) 发现默认OpenAPI相关的配置如下
3)默认加入了 Swashbuckle.AspNetCore package
2.2 运行一下
可以访问生成的Swagger UI和OpenAPI document
Swagger UI - https://localhost:<port>/swagger/index.html
OpenAPI document(运行时候生成的) - https://localhost:<port>/swagger/v1/swagger.json
3. .NET 9的Open API
3.1 创建项目并配置OpenAPI
1) 创建项目时,选中 Enable OpenAPI support
2) 创建项目后,发现在program文件中现在变成了
builder.Servers.AddOpenApi()
builder.Services.MapOpenApi()
3)默认加入的nuget package是 Microsoft.AspNetCore.OpenApi,之前的Swashbuckle.AspNetCore默认没有添加了
3.2 运行一下
发现Open API的UI没有了,但是有OpenAPI document 生成, 地址是
https://localhost:<port>/openapi/v1.json
.NET 9 中 使用 package Microsoft.AspNetCore.OpenApi就可以生成OpenAPI document了
3.3 添加 OpenAPI UI
如果需要Swagger UI,也可以添加package
Swashbuckle.AspNetCore.SwaggerUI
同时配置为,
3.4 再次运行一下
Swagger UI已经有了,地址是
https://localhost:<port>/swagger/index.html
3.5 生成OpenAPI Document
.NET 9 中,使用package Microsoft.Extensions.ApiDescription.Server ,可以在编译时生成OpenAPI document
1) 添加package
2) 配置项目
3) 编译项目,发现多了OpenAPI document
4. .NET 9 中的变化
1) 内置支持OpenAPI document生成(在运行时阶段),
2) 使用SwashBuckle.AspNetCore的方式可能有变化
.NET 9 中OpenAPI也添加了一些别的新特性,比如
Microsoft.AspNetCore.OpenApi package 是aot兼容的
5.总结
以上简单比较了一下.NET8与.NET9中的OpenAPI
如果哪里有错误,麻烦告之,谢谢谢谢!