如何在Asp.Net Core 2.x中将root重定向到swagger?

时间:2018-03-15 02:34:57

标签: c# asp.net-core swagger

我正在构建与Swagger集成的Asp.Net Core 2.x web api。为了访问招摇,我不得不将/ swagger附加到网址,例如。 https://mywebapi.azurewebsites.net/swagger/

如何将https://mywebapi.azurewebsites.net/重定向到https://mywebapi.azurewebsites.net/swagger/

6 个答案:

答案 0 :(得分:14)

从Nuget

安装 Microsoft.AspNetCore.Rewrite

在Startup.cs

public void Configure(IApplicationBuilder app, IHostingEnvironment env)

之前

app.UseMvc();

添加

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

答案 1 :(得分:11)

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

答案 2 :(得分:2)

在Startup.cs上,之后:

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

添加:

options.RoutePrefix = string.Empty; 

这将使您的根网址成为主要的api网址。

答案 3 :(得分:1)

  1. 打开 launchSettings.json 文件。
  2. “个人资料” 节点下,具体取决于您的设置 具有一个或多个配置文件。在某些情况下,我有“ IIS Express” 和 另一个以我的项目名称(例如WebApplication1 )命名的, 现在将 launchUrl 条目更改为“ launchUrl”:“ swagger” 解决了我的问题。
  3. 如果这不起作用并且您有其他配置文件,请执行相同的操作, 测试。

答案 4 :(得分:0)

像这样创建一个默认控制器:

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

任何网址“/”,“/ docs”或“/ swagger”都会重定向到“/ swagger”。

答案 5 :(得分:0)

我用以下命令修改了launchSettings.json     “ launchUrl”:“挥舞着”,而不是“ launchUrl”:“ api /值”

为我工作,如果对您不起作用,请删除  c.RoutePrefix = string.Empty;从您的应用中使用。UseSwaggerUI配置。