Skip to content
ADP
API Design PrincipleBETA

[ADP-301] 資源導向設計

reviewing phase 1

需要更多參考資料

概述

資源導向設計是 REST API 開發中的一個基本方法,它圍繞資源構建 API 結構,這些資源是 API 提供的資訊或服務的關鍵抽象。

指導原則

什麼是資源?

在 REST API 上下文中,資源是可以在網絡上被識別、命名、尋址或處理的任何命名資訊或服務。資源可以是單一實體(例如,特定用戶)或集合(例如,所有用戶)。它們是 REST API 操作的基本概念。

什麼不是資源導向的 API 設計?

為了更好地理解資源導向設計,認識不符合這一原則的方法會有所幫助:

  1. 以動作為中心的 API 設計:

    • 示例:/getUser/createPost/deleteComment
    • 這些設計在 URI 中包含了操作,而不是使用 HTTP 方法來表示動作。
  2. RPC 風格的 API:

    • 示例:/api/doSomething/api/processData
    • 這些設計更像是遠程過程調用,而不是對資源的操作。
  3. 單一端點 API:

    • 示例:/api(所有操作都通過這個單一端點執行,通過參數區分)
    • 這種設計缺乏明確的資源概念,將所有操作混在一起。

這些非資源導向的 API 設計通常會導致 API 更難理解、使用和維護,也不利於 API 的擴展和演進。

示例

考慮一個簡單的部落格 API:

  1. 資源:

    • 貼文
    • 評論
    • 用戶
  2. URI 設計:

    • /posts(所有貼文的集合)
    • /posts/{id}(特定貼文)
    • /posts/{id}/comments(特定貼文的評論)
    • /users(所有用戶的集合)
    • /users/{id}(特定用戶)
  3. HTTP 方法:

    • GET /posts - 檢索所有貼文
    • POST /posts - 創建新貼文
    • PUT /posts/{id} - 更新特定貼文
    • DELETE /posts/{id} - 刪除特定貼文