เริ่มกับ FastAPI
สร้าง web API ตัวแรกด้วย FastAPI — framework สมัยใหม่ที่ใช้ type hint สร้าง validation + docs ให้
framework ช่วยจัดการเรื่อง HTTP, routing, validation ให้เรา ไม่ต้องเขียนเอง FastAPI เป็น framework Python ที่นิยมมาก จุดเด่นคือใช้ type hint (จากบท 2) สร้าง validation และเอกสาร API ให้อัตโนมัติ
ติดตั้งและ API ตัวแรก
pip install fastapi uvicorn# main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/") # ผูก GET / กับฟังก์ชันนี้ (decorator!)
def read_root():
return {"message": "สวัสดี"}
@app.get("/hello/{name}") # path parameter
def greet(name: str):
return {"greeting": f"สวัสดี {name}"}uvicorn main:app --reload
# รันที่ http://127.0.0.1:8000
# เปิด /docs จะเห็นเอกสาร API อัตโนมัติ ลองยิงได้เลย!สังเกตว่า route ใช้ decorator (จากบท 1) ผูก URL กับฟังก์ชัน — นี่คือตัวอย่างจริงของ decorator ที่เกริ่นไว้ และ type hint name: str ทำให้ FastAPI ตรวจชนิดให้อัตโนมัติ
auto docs — ของแถมที่ทรงพลัง
FastAPI สร้างหน้า /docs (Swagger UI) ให้อัตโนมัติจากโค้ด — เห็น endpoint ทั้งหมด ลองยิง request ได้จากเบราว์เซอร์ ไม่ต้องเขียน doc เอง
path parameter
@app.get("/users/{user_id}")
def get_user(user_id: int): # FastAPI แปลงเป็น int ให้ + ตรวจชนิด
return {"user_id": user_id}
# GET /users/5 -> {"user_id": 5}
# GET /users/abc -> error 422 อัตโนมัติ (ไม่ใช่ int)สรุปหัวข้อนี้
- pip install fastapi uvicorn; รันด้วย uvicorn main:app --reload
- @app.get/post ผูก URL กับฟังก์ชัน (decorator)
- type hint ทำให้ FastAPI ตรวจชนิด + สร้าง validation ให้
- เปิด /docs เห็นเอกสาร API อัตโนมัติ ลองยิงได้
1) สร้าง API ที่มี GET / คืนข้อความ 2) เพิ่ม endpoint /hello/{name} 3) เพิ่ม /users/{user_id} ที่รับ int แล้วลองส่ง abc ดู error 4) เปิด /docs แล้วยิง request จากเบราว์เซอร์