Tạo API đầu tiên với FastAPI & Pydantic Models
Tạo API đầu tiên với FastAPI & Pydantic Models
Trong buổi này, chúng ta bắt đầu xây dựng ứng dụng FastAPI hoàn chỉnh đầu tiên, làm quen với cách tổ chức project, khai báo metadata cho API, và chia router theo module – đúng chuẩn backend thực tế.
1️⃣ Khởi tạo ứng dụng FastAPI
Ứng dụng được khởi tạo thông qua FastAPI() với các thông tin mô tả cơ bản:
-
Title – tên API hiển thị trên Swagger UI
-
Description – mô tả mục tiêu API (sử dụng Pydantic models – Buổi 2)
-
Version – phiên bản API để quản lý nâng cấp về sau
Việc khai báo metadata giúp:
-
API trông chuyên nghiệp
-
Dễ quản lý version
-
Team frontend/tester hiểu API nhanh hơn qua
/docs
2️⃣ Tổ chức code theo Router (Chuẩn backend thực tế)
Thay vì viết toàn bộ API trong một file, project được chia thành các router riêng:
-
items– xử lý nghiệp vụ liên quan đến item -
users– xử lý nghiệp vụ người dùng -
products– xử lý nghiệp vụ sản phẩm
Các router được gắn vào app chính thông qua include_router().
Lợi ích:
-
Code dễ đọc – dễ bảo trì
-
Module hóa rõ ràng
-
Dễ mở rộng khi hệ thống lớn dần
3️⃣ API root – kiểm tra nhanh trạng thái hệ thống
Endpoint / đóng vai trò:
-
Kiểm tra server có đang chạy hay không
-
Trả về thông tin cơ bản:
-
Thông điệp chào mừng
-
Link tài liệu
/docs -
Phiên bản API hiện tại
-
Đây là cách làm rất phổ biến trong các hệ thống backend thực tế.
4️⃣ Chạy ứng dụng với Uvicorn
FastAPI sử dụng Uvicorn – ASGI server hiệu năng cao.
Lưu ý quan trọng:
-
Khi chạy bằng lệnh:
uvicorn app.main:app --reload→ Tự reload khi code thay đổi (phù hợp dev).
-
Khi chạy file trực tiếp:
-
Không nên bật
reload=True -
Dễ gây lỗi hoặc chạy không ổn định
-
Giúp học viên hiểu đúng cách dev FastAPI chuẩn.
5️⃣ Kết quả đạt được sau Buổi 2
Sau buổi học này, học viên sẽ:
-
Hiểu cách khởi tạo FastAPI App chuẩn
-
Biết cách chia router theo module
-
Sử dụng thành thạo Swagger UI
-
Chạy FastAPI đúng cách với Uvicorn
-
Sẵn sàng cho các buổi tiếp theo:
-
Pydantic schema chi tiết
-
CRUD + Database
-
Auth & phân quyền
-
👉 Nếu anh muốn, mình có thể viết tiếp:
-
Buổi 3: CRUD + Pydantic Schema chuẩn doanh nghiệp
-
Buổi 4: Kết nối Database (PostgreSQL)
-
Buổi 5: Auth, JWT & phân quyền
Chỉ cần nói tiếp buổi mấy, mình làm trọn bộ cho anh luôn 💪
- Giới thiệu về Giao dịch Sao chép Bot Bitget
- 48 Giờ “Điên Rồ” Cuối Cùng Của Năm 2025: Cơ Hội Săn 6600 BGB Airdrop Độc Quyền Trên Bitget
