關於REST/RESTful API ( Representational State Transfer API)
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的約束/條件
- Uniform Interface 統一界面:風格統一,Resource由直覺並簡潔易懂的 URI指定,使用了 HTTP protocol (GET/POST/PUT/DELETE), 兼具status code, URI, http method優點。
(Web 所接受的資料類型: JSON, XML, YAML 等,最常見的是 JSON) - Stateless 無狀態性:API不帶有狀態性,Server不儲存狀態,有利於負載平衡。
- Cacheable 可緩存
- Client-Server,統一的接口將client與Server分開,需求只能由用戶端發起,兩者可獨立開發,彈性與延展性較高。
- Layered System分層系統: 通過限制元件的行為(即每個元件只能「看到」與其互動的緊鄰層),將架構分解為若干等級的層。
- Code-On-Demand 按需編碼,Client端可發送請求至Server端,擴充Client端功能。
RESTful API的優點
- 瀏覽器即為用戶端,輸入URL即可獲取資料
- 可利用Catch加快回應速度,如果Server端資料沒有變更,可用 cache機制,來達到更快的回應速度。
- 界面與資料分離,讓資源管理更完善。
- 節省伺服器的運算,可透過Catch紀錄版本號,如Server版本號相同則直接取用catch資料即可,省去Server運算。
- 搭配Status Code,方便Debug
- Web/Android/iOS通用
RESTful API的缺點
- 資源相依問題,一個URL只能獲取特定資源, 有時候取資料時都要呼叫好多次 API 才可以組合成完整的物件。
- 有安全性的問題,需要Server端好好把關,驗證發送Request的身分與權限,機敏資料加密等。
參考資料: