Section 1: Lab: เตรียมเครื่องมือและ API แรก
- FastAPI คืออะไร ต่างจาก Flask และ Django อย่างไร
- ติดตั้ง Python 3.13 ขึ้นไปและสร้างโปรเจกต์ด้วย uv
- ติดตั้ง fastapi[standard] และรันด้วยคำสั่ง fastapi dev
- สำรวจเอกสาร API อัตโนมัติด้วย Swagger UI และ ReDoc
- Lab: สร้าง API แรกและทดสอบด้วย Postman หรือ Bruno
Section 2: Routing และการรับค่า
- ประกาศ HTTP GET, POST, PUT, PATCH และ DELETE
- รับค่าแบบ Path Parameter และ Query String พร้อม Type Hint
- ใช้ Annotated กับ Path, Query และ Header เพื่อตรวจค่า
- อ่าน JSON จาก HTTP Body และส่ง Status Code ให้ถูกต้อง
- Lab: API ค้นหาและกรองข้อมูลสินค้าด้วย Query String
Section 3: Lab: Pydantic v2 และ Response Model
- สร้าง Model สำหรับ Request และ Response แยกจากกัน
- ตรวจข้อมูลด้วย Field, Validator และชนิดข้อมูลอย่าง EmailStr
- กำหนด response_model และ Return Type เพื่อกรองข้อมูลที่ส่งออก
- Model ซ้อนกัน, List และค่าว่างแบบ Optional
- Lab: API สมัครสมาชิกที่ตรวจข้อมูลครบชุด
Section 4: Error Handling, Form และ Upload File
- HTTPException และ Custom Exception Handler กลาง
- รูปแบบ Error Response ที่สม่ำเสมอทั้งระบบ
- รับข้อมูลแบบ Form และ URL-encoded
- Upload File ด้วย UploadFile พร้อมตรวจชนิดและขนาดไฟล์
- เปิดโฟลเดอร์ Static File สำหรับรูปภาพและเอกสาร
Section 5: Lab: จัดโครงสร้างโปรเจกต์
- แยก Route เป็นหลายไฟล์ด้วย APIRouter พร้อม prefix และ tags
- ทำ Versioning ของ API เช่น /api/v1
- ตั้งค่า CORS ให้ Frontend เรียกใช้ได้อย่างปลอดภัย
- อ่านค่าตั้งจากไฟล์ .env ด้วย pydantic-settings
- Lab: จัดโครงโปรเจกต์ TODO ให้พร้อมเชื่อมฐานข้อมูล