[Web API] ASP.NET Web API概覽

什麼是ASP.NET Web API [1]
  • ASP.NET Web API是一個可以簡化建立HTTP服務的框架.
  • 前身為WCF WebAPI, 協助WCF服務支援RESTful介面.
    • RESTful: 簡單來說就是以 URL 定位資源,根據 HTTP 內容指示操作動作與回應訊息。一個符合上述實作方式的網路服務,就稱之為 RESTful web service 。 [2]
  • 支援利用HTTP協定.
    • HTTP服務類似Web Service, 可以提供應用程式執行時需要的功能
  • 取回XML格式或JSON格式的結果.
    • JSONJavascript Object Notation)是一種輕量級的資料交換語言,以文字為基礎,且易於讓人閱讀。[3]
      • 輕巧的資料交換結構, 佔頻寬比較少.
  • 許多知名的大網站皆支援Web API Model, 如Facebook, Twitter, LinkedIn, Google, etc.



優點:

  1. 使同一系統元件能被不同形式的用戶端重覆使用, 如瀏覽器, Windows form, 手機程式/平板(android, IOS, windows phone), 減少重覆開發所浪費的時間.
  2. 元件在不同系統之間可共同使用(ex:讀取人事資料)
  3. 利用HTTP協定, 使得簡單靈活且無處不在.
  4. 基本上現在所有設備已經支援HTTP, 不需要另外安裝套件.


缺點:

  1. 資料結構較不嚴謹, 不適合用來實作系統與系統之間的資料交換.

名詞解釋:

Model: 


  • 官方解釋: model is an object that represents the data in your application. ASP.NET Web API can automatically serialize your model to JSON, XML, or some other format, and then write the serialized data into the body of the HTTP response message. As long as a client can read the serialization format, it can deserialize the object. Most clients can parse either XML or JSON. Moreover, the client can indicate which format it wants by setting the Accept header in the HTTP request message.
  • 網路上的解釋: 是在應用程式中使用物件(object)方式來表現資料。ASP.NET Web API 能自己序列化(serialize) 你的 Model 成為 JSON、XML 或其他資料格式,然後寫入這些已序列化資料到 HTTP 回應訊息 (response message) 的主體 (body) 中。只要用戶端 (client) 能讀取序列化格式,它就能反解析序列化成為物件。[5]



Controller:

  • 官方解釋: controller is an object that handles HTTP requestst. The New Project wizard created two controllers for you when it created the project. To see them, expand the Controllers folder in Solution Explorer. [6]
  • 網路上的解釋: controller 是在處理從用戶端來的 HTTP 請求的物件。預設 ASP.NET Web API 專案會建置兩個 controller。[5]

    • HomeController 是傳統 ASP.NET MVC 的 controller。它與我們 Web API 服務沒有直接關係。
    • ValuesController 是一個 Web API controller 範例。本身包含Get, Post, Put, Delete. 其中Get可傳回特定資料或全部資料. 下表定義了每個HTTP方法的含意: [7]

      再簡單一點的解釋如下.
      1
      2
      3
      4
      
      Create -> Post
      Read   -> Get
      Update -> Put
      Delete -> Delete
      
回傳值格式:
JSON或自定義XML.



下一節會詳細介紹Web API的簡單實作方法.



參考資料:

[1] ASP.NET 4.5 Web API開發實務- YouTube: http://www.youtube.com/watch?v=GfQrAQp5RW8






[7]ASP.NET MVC4中調用WEB API的四個方法 http://tech.it168.com/a2012/0606/1357/000001357231_all.shtml

Popular posts from this blog

[SQL SERVER] 找出LOCK方法懶人包

[SQL Server] 解決log檔(ldf file)過度膨脹的實戰經驗

[開箱] Dell P2415Q 4K螢幕開箱