Puis-je utiliser les deux règles de route suivantes ensemble?
config.Routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional } );
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Dites par contrôleur est = FruitApiController:ApiController
et je souhaite avoir le suivant
List<Fruit> Get()
= api/FruitApi/
List<Fruit> GetSeasonalFruits()
= api/FruitApi/GetSeasonalFruit
Fruit GetFruits(string id)
= api/FruitApi/15
Fruit GetFruitsByName(string name)
= api/FruitApi/GetFruitsByName/Apple
S'il vous plaît aidez-moi sur ce point. Merci
Vous pouvez avoir plusieurs itinéraires:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "ApiById",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional },
constraints: new { id = @"^[0-9]+$" }
);
config.Routes.MapHttpRoute(
name: "ApiByName",
routeTemplate: "api/{controller}/{action}/{name}",
defaults: null,
constraints: new { name = @"^[a-z]+$" }
);
config.Routes.MapHttpRoute(
name: "ApiByAction",
routeTemplate: "api/{controller}/{action}",
defaults: new { action = "Get" }
);
}
}
config.Routes.MapHttpRoute(
name: "ApiByName",
routeTemplate: "api/{controller}/{action}/{name}",
defaults: null,
constraints: new { name = @"^[a-z]+$" }
);