在理解了API的設計原則、測試方式與資料結構之後,可以嘗試從使用者轉為設計者,想像如果要自己設計一個 API,它會長什麼樣子?這不僅是技術練習,也是思考邏輯與資料表達的延伸。
假設想設計一個「每日一句 API」,讓使用者每次發出請求,都能取得一句勵志語錄。這樣的API雖然簡單,但能涵蓋最基本的RESTful思維:清楚的端點設計、結構化的回應資料,以及可擴充的操作方式。
設計可以從最基礎的端點開始:
GET /api/quote
當使用者發送請求時,伺服器可以回傳如下的JSON:
{
"id": 7,
"author": "Maya Angelou",
"quote": "You will face many defeats in life, but never let yourself be defeated."
}
這是一個典型的API回應結構,清楚標示每個欄位的意義。
如果要進一步設計更多功能,還可以考慮以下端點:
GET /api/quote/random
:回傳一筆隨機名言POST /api/quote
:新增一句新的語錄GET /api/quote/author/Maya
:依作者查詢名言這樣的設計不僅方便使用者,也讓API的邏輯更完整。
若要快速模擬實際運作,可以用幾行Python實現一個簡單的版本:
import random
quotes = [
{"author": "Maya Angelou", "quote": "You will face many defeats in life, but never let yourself be defeated."},
{"author": "Steve Jobs", "quote": "Stay hungry, stay foolish."},
{"author": "Albert Einstein", "quote": "Imagination is more important than knowledge."}
]
quote = random.choice(quotes)
print("今日名言:", quote["quote"], "——", quote["author"])
這段程式的邏輯與 API 十分類似:系統從「資料庫」(這裡是清單)中挑出一筆資料,再將它以固定結構「回傳」。
之後將這段邏輯改寫成Flask或FastAPI等框架,就能成為真正的可用API。
透過這個練習,可以實際體會API設計的核心精神:
當能自己構思並設計出一個API,不只是技術能力的展現,更代表已經理解資料交換的邏輯與設計思維。