RESTful API 相關資訊收集
- 透過 URI 指定要存取或操作的資源
- 可使用 QueryString,但只應拿來傳遞額外過濾條件或參數,不應包含識別資源的鍵值
- 使用 HTTP 方法 POST、GET、PUT、DELETE 對應到建立、讀取、更新、刪除等動作。
- 也有人主張 PUT 是 Relace (Create 或 Update),另外增加 PATCH 用於部分更新( Partial Update )
- 透過 Accept Header 指明可接收的內容格式,例如:XML 或是 JSON
- 伺服器透過 HTTP 狀態碼回傳執行結果,例如:200 成功、401 存取被拒、404 找不到資源、500 伺服器錯誤
RESTful 是一種「軟體架構風格」
RESTful-Triangle (REST 金三角) 概念:
RESTful-Triangle 右邊這個三角形描述了以下三個重要的概念:
- Nouns 名詞:用來定義你的網址 URL,記住,每一個網路上的資源應該僅有一個唯一的識別位置,就像你的房子有獨一無二的「住址」一樣。
- Verbs 動詞:描述了對 Nouns 名詞 (資源 URL) 的操作動作,在 HTTP 1.1 的實作當然就是 HTTP Method。比如用 GET 取得文章內容、用 DELETE 刪除文章等等行為。
- Content Types 資源呈現方式:比如取得某一個 URL 文章的 HTML 格式、或者 XML 格式,同樣的 URL 資源可以有不同型態的表現方式。
RESTful 的優點如下所列:
- 瀏覽器即可以作為 client 端
- 可以更高效地利用 cache 來達到更快的回應速度
- 界面與資料分離
- 節省伺服器的計算資源
- 可重用! web/android/ios 都可以用, 無痛轉換!
RESTful 的要求:
- client - server 架構
- 分層系統
- 利用快取機制增加效能
- server-side: 在 GET 資源時,若該資源並沒有被變更,就可以利用 cache 機制減少 query,並且加快回應速度
- client-side: 透過 client 端 cache 記錄 cache 版本,
- 若向 server 要求資源時發現 server 最新版與 cache 相同,
- 則 client 端直接取用本地資源即可,不需要再做一次查詢
- 省機器運算及流量 = 省錢
- 通訊協定具有無狀態性
留言
張貼留言
歡迎留言一起討論