我想知道是否有創建REST API和ASP.NET MVC 3的最佳做法?目前我正在考慮爲每個版本的REST API創建一個控制器。例如,到目前爲止我有:使用ASP.NET MVC 3構建REST API的版本控制 - 最佳實踐
public class V1Controller : Controller
{
public V1Controller()
{
}
public ActionResult GetUser(string userId, IUserRepository userRepostory)
{
//code to pull data and convert to JSON string
return View("Results");
}
public ActionResult GetUsersByGroup(string groupId, IUserRepository userRepostory)
{
//code to pull data and convert to JSON string
return View("Results");
}
}
然後對於意見我覆蓋_ViewStart.cshtml以除去佈局,然後我有Results.cshtml,僅僅輸出被在控制器動作被格式化的數據,右現在JSON。在一個控制器中進行每個REST調用似乎有點太多,但這是我能想到的最好方式,以便我可以保持單獨版本的API的清晰,以便在創建API的第2版時,我可以創建一個V2Controller並且不要打破現有的API,讓人們有時間切換到新的API。
有沒有更好的方法來創建ASP.NET MVC 3的REST API?
似乎你想問關於版本控制。我認爲'V1Controller'不是一個好習慣。您將一個'Controllers'中的所有版本混合到一個MVC項目中。我認爲版本應該是來自源代碼管理歷史的標記/分支。這不應該成爲僅服務REST服務的問題,但MVC包含網站+ REST。那麼,我怎麼發佈REST的版本,而網站只使用最新的REST?然後,我創建了2個MVC項目,一個用於網站,另一個用於REST服務(但爲什麼不是WCF?)。 MVC應該在一個項目中同時處理,我再次回到原來的想法! – CallMeLaNN 2011-04-22 03:04:48