Este es sin duda un cambio de Beta a RC. En el ejemplo proporcionado en la pregunta, ahora necesita decorar su acción con [HttpGet] o [AcceptVerbs ("GET")].
Esto causa un problema si desea mezclar acciones basadas en verbos (es decir, "GetSomething", "PostSomething") con acciones no basadas en verbos. Si intenta utilizar los atributos anteriores, provocará un conflicto con cualquier acción basada en verbos en su controlador. Una forma de obtener un resultado sería definir rutas separadas para cada verbo y establecer la acción predeterminada en el nombre del verbo. Este enfoque se puede utilizar para definir recursos secundarios en su API. Por ejemplo, el siguiente código admite: "/ resource / id / children" donde id y children son opcionales.
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") }
);
Es de esperar que las versiones futuras de la API web tengan un mejor soporte para este escenario. Actualmente, hay un problema registrado en el proyecto de codeplex aspnetwebstack, http://aspnetwebstack.codeplex.com/workitem/184 . Si esto es algo que le gustaría ver, vote sobre el tema.