it-swarm.com.de

So ändern Sie die Basis-URL von Swagger im ASP.NET-Kern

Wenn Sie Swagger in ASP.NET Core-Projekt aktivieren, ist es standardmäßig unter URL verfügbar:

http://localhost:<random_port>/swagger/ui

Ich möchte anstelle von /swagger/ui eine andere Basis-URL verwenden. Wie und wo kann ich das konfigurieren?

Ich habe festgestellt, dass Sie für ältere Versionen die RootUrl konfigurieren können, aber es gibt keine vergleichbare Methode in ASP.NET Core:

.EnableSwagger(c =>
{
    c.RootUrl(req => myCustomBasePath);
});
9
Mariusz Jamro

Die neue Swagger-Version bietet Ihnen eine Eigenschaft namens RoutePrefix.

   app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
                c.RoutePrefix = "docs";
            });
24
maxspan

Für ASP.NET Core 2 (und mit Swashbuckle.AspNetCore.Swagger -Version 4.0.1) können einige Dinge für eine vollständige Konfiguration des Änderns der Standard-Swagger-UI-Basis-URL getan werden.

Wenn Sie "mycoolapi" an den Anfang Ihrer Standard-URL für die Swagger-Benutzeroberfläche setzen möchten, gehen Sie wie folgt vor: http://<server>/mycoolapi/swagger, dann mache folgendes:

In Ihrer Startup.cs Configure-Methode:

    app.UseSwagger(c =>
    {
        c.RouteTemplate = "mycoolapi/swagger/{documentname}/swagger.json";
    });


    app.UseSwaggerUI(c =>
    {
        c.SwaggerEndpoint("/mycoolapi/swagger/v1/swagger.json", "My Cool API V1");
        c.RoutePrefix = "mycoolapi/swagger";
    });

Wenn Sie derzeit über Ihre launchSettings verfügen, um den Browser beim Start auf der Swagger-Benutzeroberfläche zu starten (für Entwicklungszwecke), aktualisieren Sie den Abschnitt mit den launchSettings.json-Dateiprofilen auf ähnliche Weise:

  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "mycoolapi/swagger",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "MyProject.Web": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "mycoolapi/swagger",
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
9
EspressoBeans
  1. Öffnen Sie die Datei launchSettings.json .
  2. Unter dem "profiles" Knoten sollten Sie je nach Ihren Einstellungen ein oder mehrere Profile haben. Im Mai hatte ich "IIS Express" und einen anderen mit Namen mit meinem Projektnamen (z. B. WebApplication1) und änderte jetzt den Eintrag launchUrl in "" launchUrl " "swagger" mein Problem gelöst.
  3. Wenn dies nicht funktioniert und Sie andere Profile haben, tun Sie dasselbe und testen Sie es.
1
Mxaza

Sie können dies auch in Config tun

app.UseSwaggerUI(c =>
            {
                c.RoutePrefix = string.Empty;
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "MY API");
            });
0
Jackboys

Die Erweiterungsmethode UseSwaggerUi() zum Aktivieren der Middleware in der Configure-Methode der StartUp-Klasse erfordert zwei Variablen. Eine baseRoute, die standardmäßig swagger/ui ist, und swaggerUrl, die standardmäßig swagger/v1/swagger.json ist. Geben Sie einfach eine andere baseRoute an.

//Swagger will be available under '/api' url
app.UseSwaggerUi("api");

Wenn Sie mehr über die Konfiguration von Swagger für ASP.NET Core erfahren möchten, habe ich einen Blogpost geschrieben, um zu beginnen: https://dannyvanderkraan.wordpress.com/2016/09/09/asp-net-core- 1-0-web-api-automatic-documentation-with-swagger-and-swashbuckle/

0