RESTful API

更新 發佈閱讀 4 分鐘

RESTful API 是一種遵循 REST(表述性狀態轉移)架構風格設計的網路服務介面,強調以資源為中心、使用標準 HTTP 方法、無狀態通訊與一致介面,讓用戶端與伺服端鬆耦合、可擴展且易於維護。

核心約束

  • 客戶端-伺服端分離:前後端職責分離,可獨立演進,只需遵守約定的資源契約與格式。
  • 無狀態:每個請求都須攜帶完成處理所需資訊,伺服端不保存會話狀態,提升可擴展性與容錯性。
  • 可快取:回應需明確標示可否快取與有效期,以降低延遲與伺服壓力。
  • 分層系統:客戶端不需知道是否經過中介層(閘道、快取、負載平衡、驗證),有助安全與伸縮。
  • 一致介面:資源以 URI 識別;以標準方法操作(GET/POST/PUT/PATCH/DELETE);訊息自我描述;可選用 HATEOAS 提供超連結導引後續動作。
  • 按需下載程式碼(可選):伺服端可回傳可執行程式碼以擴展用戶端行為(較少在API中使用)。

資源導向設計

  • 資源命名:以名詞與階層化路徑表示,例如 /users、/users/{id}、/orders/{id}/items。
  • 標準方法與語意:
  • GET 讀取資源(安全且冪等)
  • POST 建立資源或執行非冪等動作
  • PUT 以完整表示更新(冪等)
  • PATCH 局部更新
  • DELETE 刪除(冪等)。
  • 回應碼與標頭:合理使用 2xx/4xx/5xx;Location 指向新資源;ETag/Last-Modified 支援條件式請求與快取。

回應格式與契約

  • 常用 JSON(或 XML/CSV 等),明確 Content-Type、Accept;版本化可用 Accept 版本或 URI 前綴(/v1)。
  • 文件化:以 OpenAPI/Swagger 描述端點、參數與回應,提升可用性與一致性。

設計最佳實踐

  • 冪等與重試:確保 PUT/DELETE 冪等;設定超時、退避重試與錯誤分類。
  • 分頁/篩選/排序:提供 query 參數(如 page、limit、sort、filter),並在回應提供分頁中繼資訊與連結。
  • 安全性:全站 TLS;OAuth2/OIDC/JWT;最小權限;輸入驗證與速率限制;審計記錄。
  • 可觀測性:結構化日誌、追蹤ID(Correlation-Id)、標準化錯誤格式、度量與告警。
  • 版本治理:語義化變更策略,避免破壞性更新;提供遷移期與棄用公告。

何時不選 REST

  • 強流程、雙向串流、低延遲推送:考慮 gRPC、WebSocket。
  • 需要查詢彈性與聚合減少過/少取數:考慮 GraphQL。
  • 事件驅動整合:採用事件流/訊息匯流排(如 Kafka),以 REST 作為查詢介面。

簡言之,RESTful API 透過資源導向與標準化 HTTP 互動,實現鬆耦合、可擴展、可快取與易治理的服務介面;遵循無狀態、一致介面、分層與快取等關鍵約束與最佳實踐,是現代後端與系統整合的主流設計範式。

留言
avatar-img
留言分享你的想法!
avatar-img
郝信華 iPAS AI應用規劃師 學習筆記
25會員
495內容數
現職 : 富邦建設資訊副理 證照:經濟部 iPAS AI應用規劃師 AWS Certified AI Practitioner (AIF-C01)
2025/09/15
SOA(Service-Oriented Architecture,面向服務架構)是一種以「服務」為邏輯單位來設計與構建分散式系統的軟體架構風格。核心思想是將可重用的業務能力封裝為鬆耦合、可組合、透過標準介面存取的服務,促進跨系統整合、敏捷開發與治理。 核心理念 服務是自治的、明確定義契約的業務
2025/09/15
SOA(Service-Oriented Architecture,面向服務架構)是一種以「服務」為邏輯單位來設計與構建分散式系統的軟體架構風格。核心思想是將可重用的業務能力封裝為鬆耦合、可組合、透過標準介面存取的服務,促進跨系統整合、敏捷開發與治理。 核心理念 服務是自治的、明確定義契約的業務
2025/09/15
什麼是 XAI 工具 XAI 工具協助解釋與審視模型的輸出與行為,包括特徵重要度、局部決策依據、對抗與偏見偵測、資料與概念漂移、以及端到端監控與稽核。它們可分為「訓練後解釋」與「可解釋模型」兩大類,並延伸到MLOps監控與治理。 常見方法族群 全域解釋:特徵重要度、全域部分依賴關係(PDP/
2025/09/15
什麼是 XAI 工具 XAI 工具協助解釋與審視模型的輸出與行為,包括特徵重要度、局部決策依據、對抗與偏見偵測、資料與概念漂移、以及端到端監控與稽核。它們可分為「訓練後解釋」與「可解釋模型」兩大類,並延伸到MLOps監控與治理。 常見方法族群 全域解釋:特徵重要度、全域部分依賴關係(PDP/
2025/09/15
最簡潔的結論:偏好多雲與可攜性選擇用Terraform/OpenTofu;深度綁定 AWS 與原生整合則選CloudFormation。 核心差異 生態與範圍:Terraform 為多雲(AWS/Azure/GCP/K8s 等),CloudFormation 嚴格 AWS 原生,對多雲/混雲策略
2025/09/15
最簡潔的結論:偏好多雲與可攜性選擇用Terraform/OpenTofu;深度綁定 AWS 與原生整合則選CloudFormation。 核心差異 生態與範圍:Terraform 為多雲(AWS/Azure/GCP/K8s 等),CloudFormation 嚴格 AWS 原生,對多雲/混雲策略
看更多
你可能也想看
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
※ 什麼是Web API API 就是後端開出來讓前端來用的介面,讓前端與後端可以溝通。 API流程: 終端使用者用任何一種裝置進入瀏覽器。 瀏覽器透過 API 向後端發出請求,請求查詢或修改資料。 後端透過 API 收到前端的請求後,取得資料並回應給前端。 前端渲染畫面,終端使用者
Thumbnail
※ 什麼是Web API API 就是後端開出來讓前端來用的介面,讓前端與後端可以溝通。 API流程: 終端使用者用任何一種裝置進入瀏覽器。 瀏覽器透過 API 向後端發出請求,請求查詢或修改資料。 後端透過 API 收到前端的請求後,取得資料並回應給前端。 前端渲染畫面,終端使用者
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
ts-rest 可以實現從服務器到客戶端的全型別安全,可以有效降低前後端溝通血流成河的機率。(´,,•ω•,,)
Thumbnail
ts-rest 可以實現從服務器到客戶端的全型別安全,可以有效降低前後端溝通血流成河的機率。(´,,•ω•,,)
Thumbnail
※ 靜態資源回傳 ※ 什麼是靜態資源: 定義:是指事先準備好的資源,這些資源在伺服器上是靜態的、不會隨著每個請求而改變。 資源通常包括: 靜態 HTML 文件。 CSS。 圖像(Image)。 Video。 字體文件:google fonts。 favicon:網頁名稱旁邊的ico
Thumbnail
※ 靜態資源回傳 ※ 什麼是靜態資源: 定義:是指事先準備好的資源,這些資源在伺服器上是靜態的、不會隨著每個請求而改變。 資源通常包括: 靜態 HTML 文件。 CSS。 圖像(Image)。 Video。 字體文件:google fonts。 favicon:網頁名稱旁邊的ico
Thumbnail
一、什麼是Web Service?   簡單說就是「服務」的概念,人與人間、電腦與電腦間都是一樣的,一個是人與人的一來一回交流,媒介是語言中文,另一個則是個人電腦與伺服器的交流,媒介是HTTP/Internet,那麼有了媒介,就會有共同格式才能做
Thumbnail
一、什麼是Web Service?   簡單說就是「服務」的概念,人與人間、電腦與電腦間都是一樣的,一個是人與人的一來一回交流,媒介是語言中文,另一個則是個人電腦與伺服器的交流,媒介是HTTP/Internet,那麼有了媒介,就會有共同格式才能做
Thumbnail
透過零售業的數位轉型,消費者期待獲得更多元的服務體驗。API 技術在電商、庫存管理和訂單處理等方面發揮關鍵作用,幫助企業提升效率並擴大營運範圍。API 管理平台為企業帶來高彈性、安全的 API 策略,加速數位轉型,提高企業韌性。昕力資訊的 API 管理平台為企業提供強力支持,助力產業進步。
Thumbnail
透過零售業的數位轉型,消費者期待獲得更多元的服務體驗。API 技術在電商、庫存管理和訂單處理等方面發揮關鍵作用,幫助企業提升效率並擴大營運範圍。API 管理平台為企業帶來高彈性、安全的 API 策略,加速數位轉型,提高企業韌性。昕力資訊的 API 管理平台為企業提供強力支持,助力產業進步。
Thumbnail
當這產品的這個 API 被呼叫,再從回傳內容的某個欄位欄位來判斷,只要“這個欄位”顯示 false 就代表不支援」,雖然這樣的設計也能滿足功能需求…
Thumbnail
當這產品的這個 API 被呼叫,再從回傳內容的某個欄位欄位來判斷,只要“這個欄位”顯示 false 就代表不支援」,雖然這樣的設計也能滿足功能需求…
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News