【科技友瘋狂】RESTful API:全端工程師必懂的 API 設計標準

關鍵字 :RESTfulBackend全端工程師修煉日記server伺服器

在現代 Web 開發中,前端與後端的溝通幾乎都依賴 API,而 RESTful API 是目前最流行的 API 設計風格之一。無論你是開發前端、後端,還是全端應用,理解 RESTful API 都是必不可少的技能。

如果你曾經遇過以下問題:

  • 「這個 API 該怎麼設計才符合標準?」
  • 「為什麼 API 會有 GET、POST、PUT、DELETE?」
  • 「如何讓 API 更易讀、可維護?」

那麼,這篇文章將帶你深入了解 RESTful API 的設計理念與最佳實踐。


什麼是 RESTful API?

REST(Representational State Transfer,表現層狀態轉換)是一種基於 HTTP 協議 的 API 設計風格,它強調統一的資源接口設計,使 API 更簡潔、可讀、可維護。

RESTful API 的核心理念:
資源導向(Resource-Oriented)— API 主要是對資源(Resource)進行操作
無狀態(Stateless)— 每次請求都是獨立的,不會記住用戶的狀態
統一接口(Uniform Interface)— 使用標準的 HTTP 方法(GET、POST、PUT、DELETE)
基於 URI 設計 — API 透過清晰的 URL 來表示資源


RESTful API 的 HTTP 方法

RESTful API 主要使用 HTTP 方法 來對資源進行操作:

HTTP 方法 用途 範例
GET 取得資源 GET /users (取得所有用戶)
POST 新增資源 POST /users (新增用戶)
PUT 更新整個資源 PUT /users/1 (更新用戶 ID=1)
PATCH 部分更新資源 PATCH /users/1 (修改部分欄位)
DELETE 刪除資源 DELETE /users/1 (刪除用戶 ID=1)

RESTful API 設計範例

假設我們要設計一個 用戶管理系統,API 應該如何設計?

1. 取得所有用戶

GET /users

回應範例(JSON):

[
  { "id": 1, "name": "Alice", "email": "alice@example.com" },
  { "id": 2, "name": "Bob", "email": "bob@example.com" }
]

2. 取得單一用戶

GET /users/1

回應範例(JSON):

{ "id": 1, "name": "Alice", "email": "alice@example.com" }

3. 新增用戶

POST /users

請求 Body(JSON):

{
  "name": "Charlie",
  "email": "charlie@example.com"
}

回應(成功建立)

201 Created
{
  "id": 3,
  "name": "Charlie",
  "email": "charlie@example.com"
}

4. 更新用戶資訊

PUT /users/1

請求 Body(JSON):

{
  "name": "Alice Smith",
  "email": "alice.smith@example.com"
}

回應(成功更新)

200 OK
{
  "id": 1,
  "name": "Alice Smith",
  "email": "alice.smith@example.com"
}

5. 刪除用戶

DELETE /users/1

回應(成功刪除)

204 No Content

(無回應內容)


RESTful API 的設計原則

1️⃣ 使用名詞,而非動詞


GET /users (取得用戶)
GET /getUsers(動詞不必要)

POST /users (新增用戶)
POST /createUser(動詞不必要)

2️⃣ 使用狀態碼來回應請求結果

  • 200 OK:請求成功
  • 201 Created:成功建立新資源
  • 400 Bad Request:請求錯誤,如缺少必要欄位
  • 404 Not Found:找不到資源
  • 500 Internal Server Error:伺服器錯誤

3️⃣ 支援分頁與篩選
當 API 回傳大量資料時,應該支援分頁:

GET /users?page=1&limit=10

當 API 需要過濾特定資料時,可使用查詢參數:

GET /users?role=admin

4️⃣ 使用 JSON 作為回應格式
✅ JSON 是目前最廣泛使用的 API 格式,能與前端 JavaScript 直接解析

❌ 避免使用 XML,因為較為冗長且解析較慢


如何在後端建立 RESTful API(Node.js + Express)

使用 Express.js 快速建立一個 RESTful API

1. 安裝 Express

npm init -y
npm install express

2. 建立 server.js

const express = require("express");
const app = express();
app.use(express.json());

let users = [
  { id: 1, name: "Alice", email: "alice@example.com" },
  { id: 2, name: "Bob", email: "bob@example.com" }
];

// 取得所有用戶
app.get("/users", (req, res) => {
  res.json(users);
});

// 取得單一用戶
app.get("/users/:id", (req, res) => {
  const user = users.find(u => u.id == req.params.id);
  user ? res.json(user) : res.status(404).json({ message: "User not found" });
});

// 新增用戶
app.post("/users", (req, res) => {
  const newUser = { id: users.length + 1, ...req.body };
  users.push(newUser);
  res.status(201).json(newUser);
});

// 更新用戶
app.put("/users/:id", (req, res) => {
  const user = users.find(u => u.id == req.params.id);
  if (!user) return res.status(404).json({ message: "User not found" });
  Object.assign(user, req.body);
  res.json(user);
});

// 刪除用戶
app.delete("/users/:id", (req, res) => {
  users = users.filter(u => u.id != req.params.id);
  res.status(204).send();
});

// 啟動伺服器
app.listen(3000, () => console.log("Server running on port 3000"));

啟動伺服器:

node server.js

現在你已經有了一個完整的 RESTful API ?


結論

RESTful API 是全端工程師必須掌握的技術,它讓前後端能夠以清晰、標準化的方式進行數據交換。

重點回顧:
✅ RESTful API 使用標準 HTTP 方法(GET、POST、PUT、DELETE)
✅ API 設計應該以 資源導向,避免使用動詞
✅ 使用 JSON 格式 回應資料
✅ 使用 狀態碼 來指示請求結果
✅ 支援 分頁與查詢參數

你有使用 RESTful API 的經驗嗎?遇過什麼問題?歡迎留言討論!?

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論