【科技友瘋狂】RESTful API 入門教學:從架構原理到實作一支 API

關鍵字 :全端工程師修煉日記RESTful APIHTTPFlask後端開發

你是否曾經寫過 Web 後端、串接前端與資料庫?
你可能用過 fetch、axios、curl 去打某個 endpoint,但你真的了解什麼是 RESTful API 嗎?

RESTful API 是現代 Web 應用中最主流的通訊標準,無論你是前端、後端、全端,甚至是行動開發者,都無法繞過它。

本篇將帶你從零開始了解 REST 架構概念、API 設計原則,並實作一支最基本的 API,讓你真正搞懂 HTTP 背後的邏輯。


一、什麼是 REST 與 RESTful?

REST(Representational State Transfer)是一種 Web 架構風格,由 Roy Fielding 在 2000 年提出。

RESTful API 則是遵循 REST 原則設計的 Web API,透過 HTTP 協議實現資源的操作。

REST 基本概念:

  • 一切皆資源(Resource)

  • 使用標準 HTTP 方法:GET、POST、PUT、DELETE

  • 透過 URL 定位資源

  • 無狀態設計(Stateless)

  • 回應通常為 JSON 格式


二、HTTP 方法對應 CRUD 操作

操作 HTTP 方法 範例路徑 說明
取得資源 GET /users 取得所有使用者
取得單筆 GET /users/1 取得 ID=1 使用者
新增資源 POST /users 新增使用者
更新資源 PUT /users/1 更新 ID=1 使用者
刪除資源 DELETE /users/1 刪除 ID=1 使用者

這套規範就是 RESTful 設計的核心。


三、建立一支簡單的 RESTful API(使用 Flask)

以 Python Flask 為例,我們實作一支管理使用者資料的 API。

安裝 Flask:

pip install flask

程式碼:app.py

from flask import Flask, jsonify, request

app = Flask(__name__)

users = [
    {"id": 1, "name": "Alice"},
    {"id": 2, "name": "Bob"}
]

@app.route('/users', methods=['GET'])
def get_users():
    return jsonify(users)

@app.route('/users/<int:user_id>', methods=['GET'])
def get_user(user_id):
    user = next((u for u in users if u['id'] == user_id), None)
    return jsonify(user) if user else ('User not found', 404)

@app.route('/users', methods=['POST'])
def add_user():
    data = request.get_json()
    user = {"id": len(users) + 1, "name": data['name']}
    users.append(user)
    return jsonify(user), 201

if __name__ == '__main__':
    app.run(debug=True)

四、測試你的 API

你可以用以下方式測試:

  • 使用 curl

  • 使用 Postman

  • 使用前端的 fetchaxios

  • 直接開瀏覽器測 GET 請求

curl http://localhost:5000/users

五、RESTful API 設計原則補充

  1. 路徑使用名詞(資源)而非動詞

    • 正確:GET /users

    • 錯誤:GET /getAllUsers

  2. 使用階層式路徑管理關聯資源

    • /users/1/posts 表示 ID=1 使用者的文章

  3. 錯誤回應應使用正確 HTTP 狀態碼

    • 404 Not Found、400 Bad Request、201 Created 等

  4. 資料格式一致(通常使用 JSON)


六、結語:學會 RESTful API,你就能串接萬物

RESTful API 是串接前後端的橋梁、整合外部服務的入口。

只要你有以下需求:

  • 寫前端要抓資料

  • 寫後端要提供資料

  • 做行動 App 要跟伺服器同步

  • 開發 IoT 設備需要與雲端互通

你就離不開 RESTful API。從今天起,實作一支自己的 API,理解 HTTP 的邏輯,為你的開發之路打下堅實基礎。

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

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

評論