Bu kesinlikle Beta'dan RC'ye bir değişikliktir. Soruda verilen örnekte, eyleminizi şimdi [HttpGet] veya [AcceptVerbs ("GET")] ile dekore etmeniz gerekiyor.
Fiil tabanlı eylemleri (yani "GetSomething", "PostSomething") fiil tabanlı olmayan eylemlerle karıştırmak istiyorsanız bu bir soruna neden olur. Yukarıdaki öznitelikleri kullanmaya çalışırsanız, denetleyicinizdeki herhangi bir fiil tabanlı eylemle çatışmaya neden olur. Her fiil için ayrı yollar tanımlamanın ve varsayılan eylemi fiilin adına ayarlamanın bir yolu saymaktır. Bu yaklaşım, API'nizdeki alt kaynakları tanımlamak için kullanılabilir. Örneğin, aşağıdaki kod şunları destekler: "/ resource / id / children" burada id ve alt öğeler isteğe bağlıdır.
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") }
);
Umarım Web API'nin gelecekteki sürümleri bu senaryo için daha iyi desteğe sahip olacaktır. Şu anda http://aspnetwebstack.codeplex.com/workitem/184 adındaki aspnetwebstack codeplex projesinde kaydedilen bir sorun var . Bu görmek istediğiniz bir şeyse, lütfen konuya oy verin.