階段 4 · 資料放哪、怎麼串
API
讓不同系統互相交換資料或觸發動作的介面。
先用一句話理解
英文全名:Application Programming Interface
讓不同系統互相交換資料或觸發動作的介面。
打個比方
像餐廳點餐窗口,你照格式點餐,廚房照格式回應。
什麼時候會遇到
前端要拿資料、串付款、寄 Email、呼叫 AI 時。
再往深一點看
API 是系統之間的合約:呼叫方照格式送出請求,提供方照格式回傳資料,雙方不需要知道對方內部怎麼運作。API 本身只是一個概念,實際形式可以是 HTTP、WebSocket、SDK 函式,甚至函式庫的公開方法。你在前端呼叫 OpenAI 取得 AI 回應、串 Stripe 建立付款連結,都是透過 API——你傳入參數,對方回傳結果,中間的細節你不需要在乎。REST API 是目前最常見的 HTTP API 設計方式,但 API 不等於 REST API:GraphQL、gRPC 都是 API,只是風格不同。
舉個例子
你的 Next.js 前端要顯示商品資訊:前端呼叫後端的 /api/products,後端查資料庫後回傳 JSON 陣列,前端拿到資料再渲染畫面。如果你改用 Stripe API 建立訂單,流程相同——你照 Stripe 的格式送出請求,Stripe 回傳付款連結,一切透過 API 傳遞,不需要知道 Stripe 內部怎麼記帳。
常見誤解
- - 以為 API 一定公開;很多 API 只給內部系統使用,對外公開的通常需要申請 API key 並做速率控制。
- - 直接把 API key 寫在前端程式碼裡,使用者開 DevTools 就能看到,導致金鑰外洩、被盜刷費用。
- - 呼叫外部 API 時沒有處理失敗情境(網路超時、對方 5xx),一旦外部服務短暫掛掉,整個功能就壞掉。
相關名詞
相關服務
StripeResendOpenAI API