la registrazione di default si trova in genere WebApiConfig
e tende a guardare come questo
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Attribute routing.
config.MapHttpAttributeRoutes();
// Convention-based routing.
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
È necessario modificare il routeTemplate
nel setup convenzione-based.
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Attribute routing.
config.MapHttpAttributeRoutes();
// Convention-based routing.
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
Do atto che se questo progetto è condiviso con MVC che il motivo per il prefisso api
è stato quello di evitare conflitti percorso tra le due strutture. Se l'API Web è l'unica cosa utilizzata, non dovrebbe esserci alcun problema.
La parola 'api' è configurata nel metodo Register della classe statica WebApiConfig. – Fabio
Stai usando il routing degli attributi o il routing basato su convenzione? – Nkosi