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