常見的 API architectural styles

文章最後更新於 2023 年 2 月 28 日

此圖片來自於:https://blog.bytebytego.com/

是一個我很喜歡的 blog,有很多精美的系統架構圖與說明

下圖展示了常見的 API 架構風格。

1. REST 提出於 2000 年,REST 是最常用的風格之一,通常被用於前端客戶端和後端服務之間的通信。REST 符合六個架構約束,資料格式可以是 JSON、XML、HTML 或純文字。

2. GraphQL GraphQL 於 2015 年由 Meta 提出,提供適用於關聯實體呈現圖形的複雜系統所需的模式和類型系統。例如,在下圖中,GraphQL 可以在一次呼叫中擷取使用者和訂單資訊,而在 REST 中需要多次呼叫。

GraphQL 不是 REST 的替代方案,它可以建立在現有的 REST 服務之上。

3. WebSocket WebSocket 是一個提供 TCP 全雙工通訊的協定,客戶端建立 WebSockets 以從後端服務接收即時更新。與 REST 不同的是,WebSocket 可以使資料被「推送」而非一直「拉取」。

4. Webhook Webhook 通常用於第三方異步 API 呼叫。例如,在下圖中,我們使用 Stripe 或 Paypal 作為付款通道,並註冊 webhook 以獲取付款結果。當第三方付款服務完成時,它會通知付款服務付款是否成功或失敗。Webhook 呼叫通常是系統狀態機的一部分。

5. gRPC 於 2016 年發布的 gRPC 用於微服務之間的通信。gRPC庫處理編碼/解碼和數據傳輸。

6. SOAP SOAP 代表 Simple Object Access Protocol。它的載荷僅限於 XML,適用於內部系統之間的通信。

20230228221151 98

關於作者

卡哥
卡哥
我是Oscar (卡哥),前Yahoo Lead Engineer、高智商同好組織Mensa會員,超過十年的工作經驗,服務過Yahoo關鍵字廣告業務部門、電子商務及搜尋部門,喜歡彈吉他玩音樂,也喜歡投資美股、虛擬貨幣,樂於與人分享交流!

如果對文章內容有任何問題,歡迎在底下留言讓我知道。
如果你喜歡我的文章,可以按分享按鈕,讓更多的人看見我的文章。

網友留言