關於REST/RESTful API ( Representational State Transfer API)

Sinyi' Note
3 min readOct 7, 2019

--

Representational State Transfer(REST),一種網站架構風格,RESTful API基於HTTP protocol,較簡潔易懂且可重複使用。

RESTful API,可做為資料庫的CRUD ,Create(新增), Read(讀取), Update(更新) 跟Delete(刪除)使用,RESTful API建立於HTTP Protocol之上,可使用 GET、POST、PUT 和 DELETE 方法。

RESTful API的約束/條件

  1. Uniform Interface 統一界面:風格統一,Resource由直覺並簡潔易懂的 URI指定,使用了 HTTP protocol (GET/POST/PUT/DELETE), 兼具status code, URI, http method優點。
    (Web 所接受的資料類型: JSON, XML, YAML 等,最常見的是 JSON)
  2. Stateless 無狀態性:API不帶有狀態性,Server不儲存狀態,有利於負載平衡。
  3. Cacheable 可緩存
  4. Client-Server,統一的接口將client與Server分開,需求只能由用戶端發起,兩者可獨立開發,彈性與延展性較高。
  5. Layered System分層系統: 通過限制元件的行為(即每個元件只能「看到」與其互動的緊鄰層),將架構分解為若干等級的層。
  6. Code-On-Demand 按需編碼,Client端可發送請求至Server端,擴充Client端功能。

RESTful API的優點

  1. 瀏覽器即為用戶端,輸入URL即可獲取資料
  2. 可利用Catch加快回應速度,如果Server端資料沒有變更,可用 cache機制,來達到更快的回應速度。
  3. 界面與資料分離,讓資源管理更完善。
  4. 節省伺服器的運算,可透過Catch紀錄版本號,如Server版本號相同則直接取用catch資料即可,省去Server運算。
  5. 搭配Status Code,方便Debug
  6. Web/Android/iOS通用

RESTful API的缺點

  1. 資源相依問題,一個URL只能獲取特定資源, 有時候取資料時都要呼叫好多次 API 才可以組合成完整的物件。
  2. 有安全性的問題,需要Server端好好把關,驗證發送Request的身分與權限,機敏資料加密等。

參考資料:

https://www.kennethlange.com/what-are-restful-web-services/

--

--

Sinyi' Note
Sinyi' Note

Written by Sinyi' Note

前端路迢迢,給自己的筆記一點一滴累積著,很短,很簡單,路還很長

No responses yet