如何将Swagger设置为默认开始页面?

时间:2017-11-23 14:23:13

标签: c# angularjs asp.net-mvc-5 swagger-ui aspnetboilerplate

如何将Swagger设置为ABP模板中的默认起始页 而不是/Account/Login

我正在使用ASP.NET MVC 5.x + Angular 1.x。

更新

当前代码:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    //ASP.NET Web API Route Config
    routes.MapHttpRoute(
        name: "swagger_root",
        routeTemplate: "",
        defaults: null,
        constraints: null,
        handler: new RedirectHandler((message => message.RequestUri.ToString()), "swagger"));

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

除了模块零"api/Account/Authenticate"已破坏的请求外,一切仍然正常,显示:

  

无法找到资源。

7 个答案:

答案 0 :(得分:5)

this中添加RouteConfig.cs路由,如下所示:

a = [1,1,2,2,3,4]
# first time shuffle
sliced = a.shuffle.each_slice(2).to_a
# checking if there are matches and shuffle if there are
while sliced.combination(2).any? { |a, b| a.sort == b.sort } do
    sliced = a.shuffle.each_slice(2).to_a
end

答案 1 :(得分:5)

我知道主要问题是针对ASP.Net MVC的,但是对于ASP.Net Core,此答案是一个类似问题(使用SwaggerUI)的一个不错的解决方案:https://stackoverflow.com/a/50127631/1179562

app.UseSwaggerUI(c =>
{
    c.RoutePrefix = "";
    ...
};

答案 2 :(得分:4)

对于ASP Net Core> 2.2中的RESTFUL API,请在Project / Properties / Debug中设置默认URL

Default URL In Resful API dot net core 2.2

答案 3 :(得分:2)

在 Asp .Net Web Api Core 3.x 中,只需执行此操作 (RoutePrefix):

        app.UseSwaggerUI(c =>
        {
            c.SwaggerEndpoint("/swagger/v1/swagger.json", "Baha'i Prayers API");
            c.InjectStylesheet("/swagger/custom.css");
            c.RoutePrefix = String.Empty;
        });

答案 4 :(得分:1)

我转到“解决方案资源管理器面板”>“属性”。在其中,我找到了一个名为launchsettings.json的文件。

在该文件中,我在找到它的所有部分中将“ launchUrl”参数的值更改为“ swagger / index.html”。

对我有用。

================================================ ===============================

Soluciones小组委员会> Propiedades,所有档案资料都来自launchsettings.json。

在“ swagger / index.html”上修改并修改了“ launchUrl”,并为我提供了功能。

Saludos。

答案 5 :(得分:0)

通过使用“特定页面”> / swagger / ui / index

填充项目属性的“开始操作”,我能够做到这一点

enter image description here

注意:我正在使用NuGet的Swashbuckle

答案 6 :(得分:0)

在Visual Studio,IIS Express和IIS中,对我来说都很有效的方法。创建具有以下内容的控制器:

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;

namespace WebApplication.Controllers
{
    /// <summary>
    /// Controller to display API documentation in Swagger format
    /// </summary>
    [Route("")]
    [ApiExplorerSettings(IgnoreApi = true)]
    public class DocsController : Controller
    {
        [Route("docs"), HttpGet]
        [AllowAnonymous]
        public IActionResult ReDoc()
        {
            return View();
        }

        [Route(""), HttpGet]
        [AllowAnonymous]
        public IActionResult Swagger()
        {
            return Redirect("~/swagger");
        }
    }
}

注意:在Visual Studio中,编辑launchsettings.json文件效果很好,但是坚持认为在IIS上托管应用程序时,它无法按预期工作。

通过这种方式,我发现它比在几个不同位置创建大量配置更干净。