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