.NET9 开始删除内置的 Swagger 支持 可使用Scalar.AspNetCore替代
2024-11-13 1539 0
Microsoft 已决定从 .NET 9 中删除内置的 Swagger 支持 (Swashbuckle)。
为什么 Swagger (Swashbuckle) 被删除?
ASP.NET Core 团队已决定从 .NET 9 中删除内置的 Swagger 支持 (Swashbuckle),原因如下:
维护问题:Swashbuckle 项目不再由其社区所有者积极维护。问题未得到解决或解决,并且 .NET 8 没有正式版本。
ASP.NET Core 的演变:自从在 .NET 5 中引入 Swagger 支持以来,ASP.NET Core 已经有了显著的发展。它现在内置了对描述 Web API 所需的元数据的支持,从而减少了对外部工具的需求。
专注于 OpenAPI:该团队希望使 OpenAPI 成为 ASP.NET Core 中的一等公民。他们计划扩展 OpenAPI 文档生成功能,而不依赖外部包。Microsoft.AspNetCore.OpenApi
替代工具:Visual Studio 现在提供对 .http 文件的内置支持和新的 Endpoints Explorer,从而提供探索、测试和调试 API 的替代方法。
社区驱动的创新:通过消除默认依赖项,团队鼓励使用和开发可能更适合特定项目需求的各种 OpenAPI 工具。
Swagger 的替代方案:Scalar.AspNetCore
Scalar 是来自 OpenAPI/Swagger 文档的交互式 API 文档。

这个 .NET 包 Scalar.AspNetCore 提供了一种基于 OpenAPI/Swagger 文档呈现漂亮的 API引用的简单方法。
Scalar.AspNetCore GitHub地址:https://github.com/scalar/scalar
如何在 Dotnet 9 中使用Scalar.AspNetCore?
1、安装 nuget 包
dotnet add package Scalar.AspNetCore
2、用法示例
using Scalar.AspNetCore;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddOpenApi();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.MapScalarApiReference(); // scalar/v1
app.MapOpenApi();
}
app.MapGet("/", () => "Hello world!");
app.Run();
运行应用程序时,可以在终端节点访问 API 文档。
http://localhost:port/scalar/v1