web-dev-qa-db-ja.com

Swaggerをデフォルトのスタートページとして設定する方法

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

Module Zeroの"api/Account/Authenticate"リクエストが壊れて以下を表示する場合を除いて、すべてが正常に機能しています。

リソースが見つかりません。

this ルーティングを RouteConfig.cs に追加して、ここでコメント化します。

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

    //ASP.NET Web API Route Config
    routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
        );

    // Set Swagger as default start page
    /*
    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 }
    );
}
6
aaron

ASP Net Core> 2.2のRESTFUL APIの場合、Project/Properties/DebugにデフォルトのURLを設定します

Default URL In Resful API dot net core 2.2

4
JimbobTheSailor

[ソリューションエクスプローラーパネル]> [プロパティ]に移動しました。そこで、launchsettings.jsonというファイルを見つけました。

このファイルで、見つけたすべてのセクションで「launchUrl」パラメーターの値を「swagger/index.html」に変更しました。

それは私にとってはうまくいきます。

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

En el Panel de Soluciones> Propiedades、hay un archivo que se llama launchsettings.json。

Ahimodifiquéel valor delparámetro "launchUrl" en todas las partes que estaba y le puse "swagger/index.html"、con eso mefuncionó。

サリュード。

2
miguelvelarde77

これを行うには、プロジェクトのプロパティの開始アクションに特定のページ>/swagger/ui/indexと入力しました。

enter image description here

注:私はNuGetのSwashbuckleを使用しています

1
fix

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

注:launchsettings.jsonファイルの編集はVisual Studioではうまく機能しましたが、IISでアプリケーションをホストしている場合は期待どおりに機能しないと主張しています。

このように、いくつかの異なる場所で多くの構成を作成するよりもクリーンであることがわかりました。

0