2012-05-11 11 views
5

Kullanıcılar, Gruplar ile ilgili sistemleri ApiControllers ile düşünün. Sonra hayal aşağıdaki erişim desenlerASP.NET Web API'sı alt denetleyicileri farklı denetleyicileriyle işleyebilir

/api/users     
/api/users/1 
/api/users?groupId=1 <- #1 returns users belonging to group id 1 via Get(int? groupId) 

/api/groups/ 
/api/groups/1 
/api/groups/1/users  <- #2 sub resource, returns users belonging to group id 1 

o # 1'ler Get(int? groupId) yöntem için 2. sorumluluğunu devretmek mümkün mü? Alt kaynakların orijinal Denetleyicileriyle ele alınmasından sorumlu tutmak isterim. Başka bir deyişle, bir alt kaynak da kaynak olarak mevcutsa, alt kaynak kullanımı nasıl olmalıdır? Birincil kaynak denetleyicisine delege edilmiştir ...

P.S. Şimdi, yukarıdaki yaklaşımın RESTFull stilleriyle "cosher" olup olmadığından emin değilim, diğer tüm tartışmalar budur ...

cevap

6

WEB Api Beta, yönlendirme için yöntem düzeyi özelliğini desteklemiyor. Onlar, bir sonraki sürüm için yönlendirme hikayesini geliştirmeyi düşündüklerini söylediler. Şu an için tek yol (bildiğim gibi) bu rotaları açıkça haritalamaktır. Durumunuzda:

ve RPC URI stili için varsayılan yol, bir bakışta çalışacaktır.

routes.MapHttpRoute(
      name: "ApiDefault", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { controller = "Users", id = RouteParameter.Optional } 
     ); 

Ve ayrıca denetleyicilerin yolunuzu durumlarda oluşturmak için DefaultHttpControllerFactory sınıfını geçersiz kılabilir.

Bu yardımın umarım.

İlgili konular