Übung: Verwenden von Swashbuckle zum Erstellen eines Open API-Dokuments
In dieser Übung fügen Sie einer ASP.NET Core-Web-API-Anwendung Swagger und die Swagger-Benutzeroberfläche hinzu. Die Swagger-Tools unterstützen Sie beim Erstellen des OpenAPI-Dokuments mit der Beschreibung Ihrer Web-API.
Hinweis
Laden Sie den Quellcode auf Ihren lokalen Computer herunter, um diese Übung nachvollziehen zu können. Nachdem Sie die Datei heruntergeladen haben, müssen Sie sie entzippen.
- Wählen Sie die Schaltfläche Rohdatendatei herunterladen aus.
- Entzippen Sie die Datei
exercise.zip
.
Hinzufügen der Swagger-Tools
Öffnen Visual Studio, und suchen Sie die ASP.NET Core-Web-API-App.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie dann das Menü NuGet-Pakete verwalten aus.
Suchen Sie im NuGet-Paket-Manager nach
Swashbuckle.AspNetCore
. Wählen Sie das Paket aus, und installieren Sie es.Das NuGet-Paket wurde jetzt installiert. Schließen Sie die Registerkarte NuGet-Paket-Manager.
Konfigurieren von Swashbuckle zum Generieren eines OpenAPI-Dokuments
Öffnen Sie die Datei
Startup.cs
.Fügen Sie die folgende Anweisung direkt oberhalb der Zeile
namespace InventoryManagement.ApiApp
ein./* === using directive BEGIN === */ using Microsoft.OpenApi.Models; /* === using directive END === */
Ersetzen Sie den Code in der
ConfigureServices(IServiceCollection)
-Methode durch den folgenden Code:services.AddControllers(); /* === SwaggerGen BEGIN === */ services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "Inventory Management", Version = "v1" }); }); /* === SwaggerGen END === */
Suchen Sie in der
Configure(IApplicationBuilder, IWebHostEnvironment)
-Methode nach der bedingten Anweisungif (env.IsDevelopment())
, und ersetzen Sie alles über dieser Anweisung durch den folgenden Code:/* === SwaggerUI BEGIN === */ app.UseSwagger(c => { c.PreSerializeFilters.Add((swagger, httpReq) => { var server = new OpenApiServer() { Url = $"{httpReq.Scheme}://{httpReq.Host.Value}" }; swagger.Servers = new List<OpenApiServer>() { server }; }); }); app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "InventoryManagement.ApiApp v1")); /* === SwaggerUI END === */
Hinweis
Es ist sehr wichtig, dass Swagger-Endpunkte nur in der Entwicklungsumgebung aktiviert werden. Andernfalls könnte Ihre API für die Öffentlichkeit verfügbar gemacht werden.
Sie haben die Aktivierung des OpenAPI-Dokumentfeatures für Ihre ASP.NET Core-Web-API-App abgeschlossen. Speichern Sie die Datei
Startup.cs
. Ihre Änderungen sollten ähnlich wie der folgende Screenshot aussehen.
Generieren der OpenAPI-Dokumentdatei
Wählen Sie oben in der Mitte von Visual Studio die Schaltfläche „Debuggen“ aus.
Der Webbrowser wird automatisch geöffnet und zeigt die Seite mit der Swagger-Benutzeroberfläche an.
Möglicherweise wird die Fehlerseite 404 angezeigt. Geben Sie in diesem Fall die URL (
https://localhost:<port_number>/swagger
) in die Adressleiste Ihres Browsers ein. Im folgenden Screenshot lautet die URL zum Beispielhttps://localhost:44371/swagger
.Wählen Sie den Link aus, um die OpenAPI-Dokumentseite zu öffnen.
Das OpenAPI-Dokument wird direkt gerendert.
Ihre ASP.NET Core-Web-API-App kann jetzt das OpenAPI-Dokument generieren.