Ü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 " Rohdatei 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 das Menü " NuGet-Pakete verwalten " aus.
Suchen Sie im NuGet-Paket-Manager
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.ApiAppein./* === 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.