Esta é certamente uma mudança de Beta para RC. No exemplo fornecido na pergunta, agora você precisa decorar sua ação com [HttpGet] ou [AcceptVerbs ("GET")].
Isso causa um problema se você quiser misturar ações baseadas em verbos (ou seja, "GetSomething", "PostSomething") com ações não baseadas em verbos. Se você tentar usar os atributos acima, isso causará um conflito com qualquer ação baseada em verbo em seu controlador. Uma maneira de obter uma resposta seria definir rotas separadas para cada verbo e definir a ação padrão para o nome do verbo. Essa abordagem pode ser usada para definir recursos filhos em sua API. Por exemplo, o código a seguir suporta: "/ resource / id / children" em que id e children são opcionais.
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") }
);
Esperançosamente, versões futuras da API Web terão melhor suporte para este cenário. Atualmente, há um problema registrado no projeto codeplex aspnetwebstack, http://aspnetwebstack.codeplex.com/workitem/184 . Se isso é algo que você gostaria de ver, vote no assunto.