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/ にリダイレクトするにはどうすればよいですか?
インストール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);
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
});
Startup.csで、以下を実行します。
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "API V1");
追加 :
options.RoutePrefix = string.Empty;
これにより、ルートURLがメインAPI URLになります。
次のようなデフォルトのコントローラーを作成します。
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」にリダイレクトされます。
LaunchSettings.jsonを、「launchUrl」ではなく「launchUrl」:「swagger」で変更しました:「api/values」
c.RoutePrefix = string.Empty;を削除してください。 app.UseSwaggerUI構成から。