fastapi-do-zero: Khóa học FastAPI từ zero đến deploy thực chiến
Một khóa học FastAPI cực kỳ bài bản từ tác giả người Brazil, dạy bạn xây dựng API hoàn chỉnh từ setup môi trường đến deploy production.
Nguyễn Nhật Long
@nguyennhatlong1303
fastapi-do-zero: Khóa học FastAPI từ zero đến deploy thực chiến
Mình biết đến fastapi-do-zero trong lúc đang tìm tài liệu học FastAPI bài bản hơn, không phải kiểu tutorial "hello world" 5 phút rồi thôi. Cái repo này của tác giả Eduardo Mendes (dunossauro) - một developer người Brazil - đang có hơn 1k stars và theo mình đây là một trong những khóa học FastAPI structured nhất mà mình từng thấy trên GitHub.
Tên repo là tiếng Bồ Đào Nha, "fastapi do zero" nghĩa là "FastAPI từ đầu". Nhưng đừng để cái tên làm bạn ngại - toàn bộ nội dung có phiên bản tiếng Anh đầy đủ tại fastapidozero.dunossauro.com, và cách tổ chức bài học thì cực kỳ rõ ràng.
Khóa học này dạy gì, và tại sao nó khác với mấy cái tutorial random trên internet?
Điểm mình thấy ấn tượng nhất là scope của nó. Không phải kiểu "build một cái CRUD đơn giản rồi xong", mà là một hành trình đầy đủ từ setup môi trường đến deploy production. Cụ thể, curriculum bao gồm:
- Setup môi trường dev đúng cách
- Cơ bản về web development với FastAPI
- Xây dựng CRUD routes hoàn chỉnh
- Tích hợp database với Alembic migration
- Authentication và Authorization với JWT
- Refactor codebase cho clean architecture
- Làm cho hệ thống async
- Dockerize ứng dụng
- CI/CD với automated testing
- Deploy lên fly.io
Nhìn vào list này, bạn thấy ngay đây không phải một tutorial nửa vời. Nó cover đủ mọi thứ mà một backend engineer cần biết khi làm việc với FastAPI trong môi trường production thực tế.
Theo kinh nghiệm của mình, phần mà nhiều tutorial hay bỏ qua nhất là phần migration với Alembic và JWT auth. Đây là hai thứ mà hầu như project nào cũng cần, nhưng document chính thức của FastAPI lại không đi sâu. Cái repo này cover cả hai một cách bài bản.
Cấu trúc codebase - nhìn vào để hiểu tác giả nghiêm túc đến đâu
Mình clone về và inspect cấu trúc thì thấy tác giả dùng:
- Poetry để quản lý dependencies - đây là best practice cho Python project hiện đại, không phải pip install tùy tiện
- MkDocs để generate documentation site - với full versioning qua
mike, nghĩa là các version cũ của khóa học vẫn được maintain - towncrier để manage changelogs - cái này thường chỉ thấy ở các open source project nghiêm túc
- GitHub Actions cho CI/CD pipeline của chính repo
Cấu trúc thư mục cũng rất clean:
1fastapi-do-zero/2├── aulas/ # Nội dung các bài học3├── codigo_das_aulas/ # Code mẫu cho từng bài4├── slides/ # Slides presentation5├── changelogs/ # Changelog entries6├── hooks/ # MkDocs hooks7└── mkdocs.yml # Config cho documentation site
Cái codigo_das_aulas (code của các bài học) là thứ mình thấy rất có giá trị. Bạn không phải tự type lại từ đầu - code mẫu cho từng bài học đều có sẵn, nhưng khóa học khuyến khích bạn tự làm trước rồi mới đối chiếu.
So sánh với các resource FastAPI khác
Mình đã học FastAPI qua khá nhiều nguồn khác nhau, đây là cái nhìn thực tế:
Official docs của FastAPI rất tốt cho reference, nhưng nó không dạy bạn cách architect một project thực tế. fastapi-do-zero lấp đúng cái gap đó.
| Resource | Depth | Production-ready | Free | Language |
|---|---|---|---|---|
| FastAPI Official Docs | ⭐⭐⭐ | Partial | ✅ | EN |
| fastapi-do-zero | ⭐⭐⭐⭐⭐ | ✅ Full stack | ✅ | PT/EN |
| Full Stack FastAPI Template | ⭐⭐⭐⭐ | ✅ | ✅ | EN |
| Udemy courses (paid) | ⭐⭐⭐ | Varies | ❌ | Mixed |
| Random YouTube tutorials | ⭐⭐ | ❌ | ✅ | Mixed |
Phần async và authentication - hai điểm nhấn thực sự
Mình đặc biệt chú ý đến hai bài học này vì đây là nơi hầu hết developer gặp khó khăn nhất.
Async: FastAPI support async natively, nhưng nhiều người dùng nó theo kiểu synchronous vì không hiểu rõ. Khóa học có hẳn một bài riêng về việc "tornando o projeto assíncrono" (making the project async) - tức là refactor một codebase đang sync thành async đúng cách. Đây là scenario rất thực tế vì trong production, bạn hiếm khi build async từ đầu, mà thường phải migrate dần.
JWT Auth: Bài về authentication không chỉ dừng ở việc generate và verify token. Có cả bài "tornando o sistema de autenticação robusto" (making the auth system robust) - tức là sau khi có basic auth, bạn học cách làm cho nó production-grade: refresh token, proper error handling, security best practices.
Anh em lưu ý: phần JWT này theo mình là một trong những phần được explain rõ nhất trong bất kỳ FastAPI resource nào mình từng đọc. Tác giả không chỉ copy-paste code mà giải thích tại sao từng bước lại làm như vậy.
Deploy flow - từ Docker đến fly.io
Phần cuối của khóa học cover deployment pipeline hoàn chỉnh:
- Dockerize ứng dụng - không phải Dockerfile đơn giản mà là multi-stage build đúng chuẩn
- CI/CD với GitHub Actions - automated testing chạy trên mỗi PR
- Deploy lên fly.io - một platform khá phổ biến cho Python apps hiện nay
Mình thấy hay ở chỗ tác giả chọn fly.io thay vì AWS hay GCP. Với người mới học, fly.io đơn giản hơn nhiều để setup, free tier đủ dùng để học, và concept thì transfer được sang các platform khác. Đây là một lựa chọn pedagogical rất thông minh - focus vào việc học deploy workflow, không phải học cách navigate AWS console.
Ai nên dùng resource này?
Nên học nếu bạn:
- Đã biết Python cơ bản và muốn build REST API production-ready
- Đang chuyển từ Django/Flask sang FastAPI và cần hiểu ecosystem đúng cách
- Muốn có một project portfolio hoàn chỉnh với đầy đủ auth, database, CI/CD, deployment
- Thích học theo project-based approach thay vì đọc docs thuần túy
Có thể không phù hợp nếu bạn:
- Hoàn toàn mới với Python - nên học Python cơ bản trước
- Đã có kinh nghiệm FastAPI và muốn học advanced topics như distributed systems hay microservices
- Cần tài liệu tiếng Việt (nội dung chính là tiếng Bồ Đào Nha và tiếng Anh)
Một vài điểm cần lưu ý
Repo này đang ở version 4.x và vẫn đang được maintain tích cực - 1,911 commits tính đến thời điểm mình viết bài này. Tác giả dùng mike để versioning documentation, nghĩa là nếu bạn đang học version cũ hơn thì vẫn có thể truy cập docs của version đó.
Có một điều mình hơi tiếc là phần testing không được emphasize nhiều như các phần khác. CI/CD có đề cập đến automated testing, nhưng nếu bạn muốn học pytest và testing strategies sâu hơn cho FastAPI thì cần tìm thêm resource khác.
Ngoài ra, sau khi hoàn thành toàn bộ 14 bài học, repo có một final project để bạn tự test kiến thức - đây là cách tốt để kiểm tra xem bạn thực sự hiểu hay chỉ đang follow theo tutorial.
Nhìn chung, fastapi-do-zero là một trong những learning resource free chất lượng nhất cho FastAPI hiện tại. Nếu bạn đang muốn học FastAPI một cách bài bản và có thể ship được một project thực tế, đây là điểm khởi đầu mình sẽ recommend mà không do dự.
Nguyễn Nhật Long
@nguyennhatlong1303Nguyễn Nhật Long is a Senior Frontend Engineer and Frontend Team Leader with 7 years of experience building real-time fintech platforms. Specializing in React, Next.js, TypeScript, and React Native, shipping 10+ products across Web, Mobile, Telegram Mini-Apps, and Web3.
Thấy hay? Chia sẻ cho bạn bè!