Visual Studio 2012 中的ASP.NET Web API


restsoap

有的企業 Web 服務使用 SOAP 和 WS-*.*它們對許多事務性或復雜的方案來說很不錯。然后還有更輕量級的RESTful web 服務或"Web API",它們使用 JSON,XML,展示了所有的好東西和HTTP 規范的穩定性。

WCF 過得好好的, ASP.NET 也如此,每種技術都有使用其的理由。正如這篇文章說得好, "SOAP的世界與HTTP 服務的世界是完全不同的。SOAP 允許我們將我們的服務所需的所有知識放在信息本身中",而"您可以使用 [Web API] 來創建只使用標准HTTP 概念 (URI 和動詞)的HTTP服務,和創建使用更高級的 HTTP功能的服務 — — 請求/響應標頭,超媒體概念等。

Kelly Sommers澄清REST中撰寫了我認為是REST的最好詮釋,無論你想編寫 RESTful專注於資源的 HTTP 服務還是只是POX或 POJ (Plain Old XML 或Plain Old JSON) 服務,你能使用ASP.NET Web API做到這兩點。它是ASP.NET 開源的Web棧的所有部分。

ASP.NET Web API Samples on Codeplex,看到C# 協議對象如何在 JSON 世界和 C# 世界之間輕易來回移動了嗎? 正是JSON.NET 開放源碼庫實現了這一目標。

JSON 和 JavaScript真的是動態的,不過通常它是件麻煩事來嘗試將真的動態的 JSON 對象反序列化為強類型的.NET結構。JSON.NET 和 ASP.NET Web API 的模型綁定提供了一個開心的介質——一個中間背景——被稱為 JToken。

   1: public class ContactController : ApiController
   2: {
   3:     public JToken Post(JToken contact)
   4:     {
   5:         return contact;
   6:     }
   7: }

當 JSON導入時, 請查看Watch窗口:

Using JToken to catch a JSON payload

 

JToken 給予我一個動態的容器,而也是一個類似於 DOM 的導航模型。但如果對我來說不夠動態的話,為什么我的方法的參數不能只采取一種"動態"。

C# 是靜態類型,這是肯定的,但這並不意味着我不能靜態化動態的東西。;)

再次注意Watch窗口。

Using dynamic to catch JSON post payloads

查看JSON 如何在系統中移動,而沒有任何不匹配的阻攔。C#並沒有降低JavaScript 和 JSON 的靈活性。

以上內容來自:微小的開心功能第2部分-Visual Studio 2012 中的ASP.NET Web API

MVC4 WebAPI(一)

MVC4 WebAPI(二)——Web API工作方式

http://www.west-wind.com/weblog/posts/2012/Nov/13/DevConnections-Session-Slides-Samples-and-Links


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM