web-dev-qa-db-ja.com

Asp.Net Core 2.xでルートをswaggerにリダイレクトする方法は?

Swaggerと統合されたAsp.Net Core 2.x Web APIを構築しています。 swaggerにアクセスするには、URLに/ swaggerを追加する必要がありました。 https://mywebapi.azurewebsites.net/swagger/

https://mywebapi.azurewebsites.net/https://mywebapi.azurewebsites.net/swagger/ にリダイレクトするにはどうすればよいですか?

10

インストールMicrosoft.AspNetCore.Rewrite Nugetから

Startup.csで

public void Configure(IApplicationBuilder app, IHostingEnvironment env)

app.UseMvc();

追加

var option = new RewriteOptions();
option.AddRedirect("^$", "swagger");
app.UseRewriter(option);
17

Startup.csで

 public void Configure(IApplicationBuilder app, IHostingEnvironment env)

Swagger UIオプションを設定するセクションが必要です。 RoutePrefixオプションを追加して空の文字列に設定します。

            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My service");
                c.RoutePrefix = string.Empty;  // Set Swagger UI at apps root
            });
15
Dmitriy B

Startup.csで、以下を実行します。

app.UseSwaggerUI(options =>
                  {
                      options.SwaggerEndpoint("/swagger/v1/swagger.json", "API V1");

追加 :

options.RoutePrefix = string.Empty; 

これにより、ルートURLがメインAPI URLになります。

2
ArlanG

次のようなデフォルトのコントローラーを作成します。

using Microsoft.AspNetCore.Mvc;

namespace Api
{
    [ApiExplorerSettings(IgnoreApi = true)]
    public class DefaultController : Controller
    {
        [Route("/")]
        [Route("/docs")]
        [Route("/swagger")]
        public IActionResult Index()
        {
            return new RedirectResult("~/swagger");
        }
    }
}

URL「/」、「/ docs」、または「/ swagger」は「/ swagger」にリダイレクトされます。

1
gpaoli
  1. launchSettings.jsonファイルを開きます。
  2. "profiles"ノードの下には、セットアップに応じて1つ以上のプロファイルが必要です。場合によっては、"IIS Express"と、プロジェクト名(eg WebApplication1)の名前を持つ別のlaunchUrlへのエントリ"launchUrl": "swagger"私の問題を解決しました。
  3. これが機能せず、他のプロファイルがある場合は同じことをしてテストします。
1
Mxaza

LaunchSettings.jsonを、「launchUrl」ではなく「launchUrl」:「swagger」で変更しました:「api/values」

c.RoutePrefix = string.Empty;を削除してください。 app.UseSwaggerUI構成から。

0
Franco Morales