API 設計 中階

GraphQL 與 REST API 的核心差異為何?何時應選擇 GraphQL?

AI 練習作答

GraphQL vs REST

REST 特性

  • 資源導向,每個端點代表一個資源
  • 固定回應結構,容易 over-fetching 或 under-fetching
  • 多資源需多次請求(N+1 問題)
  • 原生 HTTP 快取支援(GET 可快取)

GraphQL 特性

  • Schema 導向,單一端點處理所有查詢
  • 客戶端精確指定需要的欄位
  • 一次請求組合多個資源
  • 強型別 Schema,自帶 Introspection 文件

選擇時機

情境 建議
多種客戶端需不同資料形狀 GraphQL
資料關聯複雜、需深度 join GraphQL
公開第三方 API REST
簡單 CRUD 服務 REST
需要 CDN / HTTP 快取 REST

常見陷阱

  • N+1 Query:需搭配 DataLoader 解決批次查詢
  • 安全性:限制查詢深度與複雜度,防止惡意查詢
  • 快取:POST 為主,需用 Persisted Queries 配合 CDN

面試加分:提及 GraphQL Federation(微服務場景)及 BFF(Backend for Frontend)模式。

✦ AI 模擬面試

輸入你的答案,AI 即時分析精準度與改進空間

登入後即可使用 AI 評分