iT邦幫忙

DAY 2
5

從無到有打造 RESTful API service系列 第 2

[API-d2] - 定義 2 - RESTful 的優點與要求

小弟的規劃表 - http://blog.kerkerj.in/blog/2014/11/01/planning/
好讀版 - http://blog.kerkerj.in/blog/2014/10/02/api-d2/

承上篇,

RESTful 的優點如下所列:

  1. 瀏覽器即可以作為 client 端
  2. 可以更高效地利用 cache 來達到更快的回應速度
  3. 界面與資料分離
  4. 節省伺服器的計算資源
  5. 可重用! web/android/ios 都可以用, 無痛轉換!

RESTful 的要求:

  1. client - server 架構
  2. 分層系統
  3. 利用快取機制增加效能
    server-side: 在 GET 資源時,若該資源並沒有被變更,就可以利用 cache 機制減少 query,並且加快回應速度
    client-side: 透過 client 端 cache 記錄 cache 版本,
    若向 server 要求資源時發現 server 最新版與 cache 相同,
    則 client 端直接取用本地資源即可,不需要再做一次查詢
    省機器運算及流量 = 省錢
  4. 通訊協定具有無狀態性
    不能讓兩隻 API 做同一個動作!
    假設完成轉賬手續必須先 call A 再 call B 的話,
    若做完 A 後斷線導致 B 無法執行,後續要處理 A -> B 的方式會很麻煩
    且不應該假設伺服器知道目前的狀態!
    因此設計出來的 API 不能有狀態性
  5. 統一界面
    使用 HTTP Verb: GET/POST/PUT/DELETE

下一篇會討論什麼時候該打造 RESTful API? 以及看看別人寫的 RESTful API


上一篇
[API] (1) - 定義 1 - 什麼是 REST/RESTful ?
下一篇
[API-d3] - 使用時機與實際 API 參考
系列文
從無到有打造 RESTful API service30

尚未有邦友留言

立即登入留言