C'est certainement un changement de Beta à RC. Dans l'exemple fourni dans la question, vous devez maintenant décorer votre action avec [HttpGet] ou [AcceptVerbs ("GET")].
Cela pose un problème si vous souhaitez mélanger des actions basées sur des verbes (c'est-à-dire "GetSomething", "PostSomething") avec des actions non basées sur des verbes. Si vous essayez d'utiliser les attributs ci-dessus, cela provoquera un conflit avec toute action basée sur des verbes dans votre contrôleur. Une façon d'obtenir un montant serait de définir des routes séparées pour chaque verbe et de définir l'action par défaut sur le nom du verbe. Cette approche peut être utilisée pour définir des ressources enfants dans votre API. Par exemple, le code suivant prend en charge: "/ resource / id / children" où id et children sont facultatifs.
context.Routes.MapHttpRoute(
name: "Api_Get",
routeTemplate: "{controller}/{id}/{action}",
defaults: new { id = RouteParameter.Optional, action = "Get" },
constraints: new { httpMethod = new HttpMethodConstraint("GET") }
);
context.Routes.MapHttpRoute(
name: "Api_Post",
routeTemplate: "{controller}/{id}/{action}",
defaults: new { id = RouteParameter.Optional, action = "Post" },
constraints: new { httpMethod = new HttpMethodConstraint("POST") }
);
Espérons que les futures versions de l'API Web auront un meilleur support pour ce scénario. Un problème est actuellement enregistré sur le projet codeplex aspnetwebstack, http://aspnetwebstack.codeplex.com/workitem/184 . Si c'est quelque chose que vous aimeriez voir, veuillez voter sur la question.