2012-09-30 63 views
1

我正在測試從asp.net mvc 4新的web api,我沒有看到比現有的asp的當前動作控制器調用更多的優勢。 net mvc 3.asp.net mvc 4 webapi的優勢超過傳統的asp.net mvc 3 ajax調用

來自mvc 3的動作控制器可以非常像web api一樣返回json。

我有兩個關於網絡API的問題:

  1. 我們什麼時候應該使用超過標準的動作控制器jsonresults網頁API?
  2. 我們如何通過不同平臺的授權訪問來保護網絡API(授權手機應用程序,其他網站)?

感謝

+0

我建議閱讀一個很好的介紹WebApi。 WebApi的方式太多了,返回Web服務結果比返回json的MVC操作更好。試試這個http://stephenwalther.com/archive/2012/03/05/introduction-to-the-asp-net-web-api.aspx –

+0

不要忽視自承載作爲Web API的優勢。你不能用MVC做到這一點。 –

回答

9

你跟橘子比較蘋果。 Web Api框架已經開發成爲WCF或其他基於ASP服務的技術的可行替代品。 Web Api框架不是爲了替代MVC。爲了回答您的問題

  1. 如果你不暴露你的API或沒有在你需要的服務(SOA支持手機和/或不同的操作系統的實例)的環境中工作,你可以使用標準的動作控制器的JSON結果從MVC控制器。實際上,沒有理由不能使用移動設備或不同操作系統的「標準」MVC控制器JSON結果,但Web API暴露了額外的有用功能,例如內容協商和更好的HTTP動詞處理,這使得它在SOA中更加有用環境。
  2. 您可以通過使用自定義操作篩選器(Authorization操作篩選器的擴展或完全定製的操作篩選器)來保護MVC應用程序。在過濾器中,您可以輕鬆地檢查IP地址的白名單或檢查當前Http請求的User-agent。
+0

+1內容協商和更好的HTTP動詞處理 – Yasser