我有一個用ASP.NET MVC 4框架編寫的web服務。它的基本CRUD操作很好地映射到REST動詞,但是我有一個操作,我需要添加一個操作。ASP.NET MVC 4 - API路由 - 在URL中指定動作
什麼是正確的方式來指定有時在URL的末尾傳遞一個ID的能力,你知道它是一個整數類型,有時候它是一個「動作」一個字符串類型,後跟一個斜槓和一個int ID?需要正確的路由器映射幫助。
想法?注意:我更關注WebAPI,然後是100%REST。
例如網址
//獲取小部件的列表
http://somedomain.com/api/widget
//獲取特定部件
http://somedomain.com/api/widget/1
// POST - 採取專項行動對特定的部件 - 促進
http://somedomain.com/api/widget/promote/1
會這是處理它的正確方法?
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapHttpRoute(
name: "DefaultApiExtended",
routeTemplate: "api/{controller}/{action}/{id}"
);
+1 - 略微變化 - 你如何處理類似出列隊列的事情,你想指定動作但不會有ID?謝謝。 – BuddyJoe
@brun對不起,我不完全理解...就像api/widgets/promote? –