承上篇,

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