影片 - Every Type of API Simply Explained in 9 Minutes!
1. REST API (表現層狀態轉換)
- 運作機制:如同餐廳服務生,在應用程式與伺服器間傳遞請求。
- HTTP 方法:使用
GET(取得資料)、POST(新增)、PUT(更新)、DELETE(刪除)。 - 核心特性:
- 無狀態性 (Stateless):每個請求都是獨立的,伺服器不記憶先前的請求,有利於擴展。
- 平台無關性:無論是 iPhone、Android 或網頁皆可通用,通常回傳 JSON 格式。
2. SOAP API (簡單物件存取協定)
- 特性:極其正式且嚴謹,如同商務合約。
- 資料格式:嚴格使用 XML,包含 Envelope (封套)、Header (表頭) 與 Body (內文)。
- 優勢:具備內建的安全與錯誤處理標準,具備企業級可靠性,常用於銀行及醫療系統。
- 傳輸協定:不限於 HTTP,也可運行於 SMTP 或 TCP。
3. gRPC (Google 遠端程序呼叫)
- 特性:強調高效能與速度(API 界的賽車),比 REST 快 7-10 倍。
- 技術核心:使用 Protocol Buffers (Protobuf) 二進制壓縮格式,並基於 HTTP/2 運行。
- 通訊模式:支援單向請求、伺服器串流、客戶端串流及雙向串流。
4. GraphQL
- 解決問題:解決 REST 常見的 Overfetching (過度擷取) 與 Underfetching (擷取不足)。
- 優勢:
- 精準請求:客戶端可以指定只要哪些欄位,不多拿也不少拿。
- 單一端點:只需一個請求即可取得所有相關資料。
- 訂閱功能 (Subscriptions):支援即時數據更新。
5. Webhooks (反向 API)
- 運作邏輯:當事件發生時(如:收到付款),伺服器會主動「打電話」給你的應用程式。
- 核心機制:透過設定 Callback URL,將事件詳情發送到該位址。
- 優點:不需重複詢問伺服器 (Polling),非常節省頻寬與資源。
6. WebSockets
- 運作邏輯:如同開啟一條永久的電話線,雙方可以隨時通話。
- 機制:從 HTTP Handshake (握手) 開始升級連線,建立持久性雙向通道。
- 應用場景:適合聊天室、股票即時行情或即時遊戲。
7. WebRTC (網頁即時通訊)
- 核心概念:P2P (點對點) 框架,數據直接在瀏覽器間傳輸,不經過中央伺服器。
- 功能:處理複雜的 NAT 穿透 與自動調整影音品質(自適應位元率)。
- 應用場景:Zoom 或 Google Meet 的視訊通話、螢幕分享與檔案傳輸。