In der neuesten Version von ASP.NET, konkret in ASP.NET 9, hat das Entwicklungsteam das Tool Swagger aus den Standardvorlagen entfernt. Diese
Entscheidung wurde getroffen, um die eigene Implementierung, die unter dem Microsoft.AspNetCore.OpenApi-Namespace läuft, voranzutreiben und eine Abhängigkeit von Swashbuckle zu vermeiden, das seit einer Weile nicht mehr aktiv gewartet wird. Bei der Erstellung eines neuen Projekts finden Entwickler nun lediglich das Minimalbeispiel, das die Nutzung von OpenAPI zeigt:
builder.Services.AddOpenApi();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.MapOpenApi();
}
Das zeigt
Steven Giesel in einem Artikel. Mit dieser Konfiguration können Entwickler die OpenAPI-Spezifikation generieren, indem sie einfach zu
https://localhost:<port>/openapi/v1.json navigieren. Allerdings müssen sie auf die vertraute interaktive Benutzeroberfläche verzichten, die Swagger bot.
Um diese Funktionalität wiederherzustellen, gibt es einige Alternativen. Die einfachste und unmittelbarste Lösung ist die erneute Installation von Swashbuckle. Das Paket wird weiterhin aktiv gewartet und ist wie gewohnt funktional. Nach der Installation fügen Entwickler einfach in ihrer Program.cs-Datei folgenden Code hinzu:
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.7.3" />
Für viele Entwickler ist Swagger aufgrund seiner hohen Anpassungsfähigkeit von großer Bedeutung.
Eine weitere Alternative stellt
NSwag dar, das ebenso in der Lage ist, die Swagger-Benutzeroberfläche bereitzustellen. NSwag bietet zudem die Möglichkeit, TypeScript-Typen automatisch zu erstellen, was für Entwickler, die in modernen Webanwendungen arbeiten, äußerst nützlich sein kann.
Zu guter Letzt gibt es das neuere Tool
Scalar, das ebenfalls mit .NET integriert werden kann. Scalar bietet eine ansprechende Benutzeroberfläche und kommt mit einem praktischen Onboarding-Guide. Um Scalar in ein ASP.NET-Projekt zu integrieren, installieren die Entwickler das Paket mittels:
dotnet add package Scalar.AspNetCore
builder.Services.AddOpenApi();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.MapOpenApi();
app.MapScalarApiReference();
}