web-dev-qa-db-fra.com

La route par défaut ASP.NET Core WebAPI ne fonctionne pas

J'ai suivi plusieurs exemples suggérant que pour définir ma route par défaut dans un projet WebAPI ASP.NET Core, je dois remplacer

app.UseMvc();

avec

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller}/{action}",
        defaults: new { controller = "Traders", action = "Get" });
});

Mais lorsque je l'exécute, la valeur par défaut est localhost:54321/api/values et elle devrait par défaut être localhost:54321/Traders.

Qu'est-ce qui ne va pas?

9
series0ne

Comme mentionné par @tmg, procédez comme suit:

Cliquez avec le bouton droit de la souris sur votre projet Web -> Sélectionnez Propriétés -> Sélectionnez l'onglet Débogage à gauche -> puis modifiez le champ "URL de lancement" pour définir votre propre URL de lancement par défaut.

 Properties Pane of the project

25
ctv

Vous pouvez modifier la route par défaut en modifiant le fichier LaunchSettings.json comme indiqué.

 enter image description here

2
YG Abhi

Suivez les étapes ci-dessous.

Créez un contrôleur de base pour votre API qui étend le contrôleur de base du noyau dotnet:

using Microsoft.AspNetCore.Mvc;

namespace WebApi.Controllers
{
    [Route("api/[controller]")]
    public abstract class ControllerApiBase : Controller
    {

    }
}

Et héritez de la classe de base dans vos contrôleurs API:

using Microsoft.AspNetCore.Mvc;
using WebApi.Dtos;

namespace WebApi.Controllers
{
    public class PingController : ControllerApiBase
    {
        public PingDto Get()
        {
            return new PingDto
            {
                Version = "0.0.0"
            };
        }
    }
}
0
Bruno Pereira