我正在開發在桌面瀏覽器,平板電腦瀏覽器和電話瀏覽器中運行的單頁應用程序。我只從我的後端返回JSON,它是ASP.NET MVC或Web API。當我沒有完全接受REST時,我應該使用Web API
當我想到Web API或閱讀它時,我總是聽到REST/RESTfull這個詞。獨立於什麼剩下的就是我喜歡的Web API的一些功能,我還沒有在MVC(默認情況下,但也許可以以某種方式實現,但我不希望額外的努力...)
- 返回的HTTPStatus碼200一樣對於創建資源時的GET或201。我的單頁應用程序知道並對此代碼作出反應。
- 直接在控制器中返回DTO並將c#類自動序列化爲json。有了MVC,這不是一蹴而就的。不處理ActionResults。
- Web API是關於'酷'URL /路由的非常多的設計我也會在我的客戶端有深度/複雜的路由。
- 我的Web API端點都只是「AJAX回調」我並不需要休息之類的東西包括在每一個檢索的ressource等一self.link ...
當然我沒有創建/修改一個ressources獲取請求。但是我在做MVC時已經習慣了這種風格。所以我喜歡並且會做很多REST風格,但不是因爲REST本身而是它的慣例。
我應該真的設計出優秀的restfull API來使用Web API嗎?我不知道什麼是微軟關於Web API的推薦,或者他們真的有關於它的指導...
書中的REST似乎適合經典的CRUD風格的應用情況最好。我發現在編寫報告或BI類型應用程序時,完全遵循REST規則並不適合我。例如,我使用請求主體中的PUT來處理複雜的過濾和排序參數。一般來說,你不需要完全遵循規則,特別是在CRUD世界之外,但是不要太偏離軌道。 – jfrankcarr