web-dev-qa-db-fra.com

Comment définir Swagger comme page de démarrage par défaut?

Comment définir Swagger comme page de démarrage par défaut dans le modèle ABP au lieu de /Account/Login?

J'utilise ASP.NET MVC 5.x + Angular 1.x.

Mettre à jour

Code actuel:

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

Tout fonctionne toujours bien, sauf le module zéro "api/Account/Authenticate" demande rompue, montrant:

La ressource est introuvable.

12

Ajoutez this le routage dans RouteConfig.cs comme commenté ici:

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

Pour une API RESTFUL dans ASP Net Core> 2.2, définissez l'URL par défaut dans Project/Properties/Debug

Default URL In Resful API dot net core 2.2

4
JimbobTheSailor

Je suis allé dans le panneau Explorateur de solutions> Propriétés. J'y ai trouvé un fichier appelé launchsettings.json.

Dans ce fichier, j'ai changé la valeur du paramètre "launchUrl" en "swagger/index.html" dans toutes les sections où je l'ai trouvé.

Ça marche pour moi.

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

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

Ahi modifiqué el valor del parámetro "launchUrl" en todas las partes que estaba y le puse "swagger/index.html", con eso me funcionó.

Saludos.

2
miguelvelarde77

J'ai pu le faire en remplissant l'action de démarrage des propriétés du projet avec Page spécifique>/swagger/ui/index

enter image description here

REMARQUE: j'utilise Swashbuckle de NuGet

1
fix

Ce qui a bien fonctionné pour moi, à la fois dans Visual Studio, IIS Express et aussi dans IIS. C'était pour créer un contrôleur avec le contenu suivant:

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

Remarque: La modification du fichier launchsettings.json a bien fonctionné dans Visual Studio, mais insiste sur le fait qu'il ne fonctionne pas comme prévu lors de l'hébergement de l'application sur IIS.

De cette façon, je l'ai trouvé plus propre que de créer beaucoup de configuration à plusieurs endroits différents.

0
Silvair L. Soares