ASP.NET Core で Swagger のベース URL を変更する方法 質問する

ASP.NET Core で Swagger のベース URL を変更する方法 質問する

デフォルトでは、ASP.NET Core プロジェクトで Swagger を有効にすると、次の URL で利用できるようになります。

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

の代わりに別のベース URL を使用したいと思います/swagger/ui。どのように/どこで設定できますか?

古いバージョンでは構成できることがわかりましたRootUrlが、ASP.NET Core には同様の方法はありません。

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

ベストアンサー1

ASP.NET Core 2 (および を使用Swashbuckle.AspNetCore.Swagger -Version 4.0.1) の場合、デフォルトの Swagger UI ベース URL を変更する完全な構成を行うために、いくつかの操作を実行できます。

次のように、デフォルトの Swagger UI URL の先頭に「mycoolapi」を追加する場合はhttp://<server>/mycoolapi/swagger、次の手順を実行します。

Startup.cs の Configure メソッドで:

    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";
    });

次に、現在 launchSettings で起動時に Swagger UI でブラウザーを起動するように設定している場合 (開発目的)、launchSettings.json ファイルのプロファイル セクションを同様に更新します。

  "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"
      }
    }
  }

おすすめ記事