我正在构建与Swagger集成的Asp.Net Core 2.x web api。为了访问招摇,我不得不将/ swagger附加到网址,例如。 https://mywebapi.azurewebsites.net/swagger/
如何将https://mywebapi.azurewebsites.net/重定向到https://mywebapi.azurewebsites.net/swagger/?
答案 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)
答案 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配置。