
概念概覽
flowchart LR A[前端請求] -->|HTTP Request| B[API 介面層] B -->|路由解析| C[後端處理] C -->|SQL 查詢| D[(資料庫)] D -->|查詢結果| C C -->|格式化資料| B B -->|HTTP Response| A
API 是什麼?
API(Application Programming Interface,應用程式介面)是前後端資料對接的標準介面。
在前後端分離的架構下,API 定義了資料交換的格式與規範。透過 API,前端可以取得後端的資料,實現動態的網頁內容。
燈泡比喻
如果我預計要裝一個燈泡,你就不能給我燈管,不然會裝不上去。
API 就像是燈座的規格定義:
- 燈座(API 介面)規定了接口規格
- 燈泡(資料)必須符合規格才能安裝
- 裝上後燈亮了(功能正常運作)
API 的資料設計
回傳格式
通常 API 回傳會包含以下欄位:
| 欄位 | 說明 |
|---|---|
status | 操作成功還是失敗 |
message | 操作相關的訊息 |
data | 操作後的資料 |
命名慣例
API 的命名通常會反映其操作內容:
GET /api/articles → 取得文章列表
POST /api/articles → 新增文章
GET /api/articles/123 → 取得特定文章
PUT /api/articles/123 → 更新特定文章
DELETE /api/articles/123 → 刪除特定文章
有沒有 API 的差別
傳統做法(無 API)
- 後端直接把資料渲染到頁面(JSP、ASP、PHP 模板)
- 優點:簡單直接,問題容易追蹤
- 缺點:接手困難,需要理解整個資料流程
現代做法(有 API)
- 前後端透過 API 介面溝通
- 優點:職責分離、問題定位更單純
- 缺點:需要額外維護 API 文件
實務上的 API
實務上不會完全遵守 RESTful API 規範,但基本的 HTTP Methods 使用是標準做法:
| Method | 用途 |
|---|---|
GET | 取得資料 |
POST | 新增資料 |
PUT | 更新資料 |
DELETE | 刪除資料 |