21 điểm bởi bnbong 2026-01-22 | 1 bình luận | Chia sẻ qua WhatsApp

Xin chào, dạo gần đây lĩnh vực phát triển AI nóng đến mức bùng nổ, kéo theo lượng người đổ vào FastAPI — framework backend Python — cũng tăng lên rất nhiều.

Là một lập trình viên đã sử dụng và yêu thích FastAPI trong thời gian dài, tôi đã phát triển dự án này với mong muốn giúp đỡ những người mới bắt đầu với FastAPI.

FastAPI-fastkit là bộ starter kit dựa trên CLI giúp thiết lập môi trường phát triển và scaffolding dự án một cách nhanh chóng cho những người lần đầu tiếp cận Python và FastAPI.

Chỉ với những lệnh rất đơn giản, bạn có thể tạo một dự án FastAPI, đồng thời toàn bộ quá trình tạo virtual environment và cài đặt dependency cũng sẽ được hoàn tất tự động.

pip install fastapi-fastkit  
fastkit init --interactive # Cấu hình dự án theo chế độ tương tác (DB ORM, xác thực, testing, utility và cài thêm dependency theo nhu cầu người dùng)  

FastAPI được yêu thích như một framework web Python hiện đại và nhanh, nhưng với những người chọn FastAPI làm framework web đầu tiên để bắt đầu thì vẫn còn không ít rào cản gia nhập:

  1. Không có sẵn cấu trúc dự án mang tính chuẩn hóa nên khó hình dung phải tổ chức project như thế nào
  2. Là hệ quả của vấn đề số 1, dù cùng dựa trên FastAPI nhưng mỗi project lại có cấu trúc khác nhau, dẫn đến phát sinh chi phí học tập khi cần hiểu project hoặc đóng góp cho mã nguồn mở
  3. So với các web framework khác, FastAPI phụ thuộc rất nhiều vào các thư viện bên ngoài cho những chức năng cốt lõi như ASGI server, serializing, v.v., nên trải nghiệm học và sử dụng FastAPI có phần khó nhằn hơn (vì cũng phải dành nhiều sự chú ý hơn để học thêm các thư viện và công cụ khác)

Những ai từng dùng Django hẳn sẽ biết django-admin startproject tiện lợi đến mức nào. Trong hệ sinh thái Spring cũng có công cụ tương tự là Spring Initializr, cho phép đặt ngay project vào thư mục làm việc để bắt đầu.

Cá nhân tôi thấy FastAPI là một framework rất hấp dẫn cả về mặt hiệu năng nên đã dùng và yêu thích nó suốt hơn 5 năm, nhưng vì những nhược điểm đã nhắc ở trên mà có không ít người ngần ngại nhập môn. Tôi đã nghĩ sẽ thật tốt nếu FastAPI cũng có một công cụ như vậy, và đó là lý do FastAPI-fastkit ra đời.

Động lực mang tính quyết định để tôi bắt tay phát triển dự án là khi FastAPI phiên bản 0.111.0 bổ sung gói FastAPI CLI. Gói này được thêm vào một cách đơn phương bởi tiangolo, nhà phát triển của FastAPI, mà không kiểm chứng phản ứng từ cộng đồng trước, nhưng tôi đồng cảm với động cơ là nhằm hạ thấp rào cản nhập môn FastAPI đã nêu trong ghi chú cập nhật đó, và tin rằng dự án của tôi vì thế có thể trở nên ý nghĩa hơn nữa.


[Tính năng cốt lõi]

  1. Trình dựng project tương tác (fastkit init --interactive)

Nếu chọn các dependency và tính năng mong muốn theo từng bước, mã nguồn sẽ được tạo tự động:

  • Database: PostgreSQL, MySQL, MongoDB, Redis, SQLite
  • Authentication: JWT, OAuth2, FastAPI-Users, dựa trên Session
  • Background: Celery, Dramatiq
  • Caching: Redis, fastapi-cache2
  • Monitoring: Loguru, OpenTelemetry, Prometheus
  • Testing: tự động cấu hình pytest + coverage
  • Utilities: CORS, Rate-Limiting, Pagination, WebSocket
  • Deployment: tự động tạo Docker, docker-compose
  • Package Manager: có thể chọn pip, uv, pdm, poetry
  • Ngoài ra, người dùng cũng có thể nhập thêm các dependency mình muốn bổ sung
  1. Triển khai nhanh mã nguồn dự án FastAPI bằng boilerplate

Nếu thấy phần thiết lập tương tác hơi phiền, bạn có thể bắt đầu ngay bằng template được cấu hình sẵn:

fastkit list-templates # Kiểm tra danh sách template khả dụng  
fastkit startdemo fastapi-psql-orm --project-name myapp # Tạo project bằng một template cụ thể  

Các template được cung cấp trong package đã được thêm vào với nhiều trường hợp sử dụng khác nhau của FastAPI trong đầu, đồng thời tham khảo cấu trúc của các project dựa trên FastAPI được công khai trên GitHub.

Việc bổ sung template mới đang được tiến hành, và hiện tại các template có sẵn gồm:

  • fastapi-default: cấu trúc project FastAPI cơ bản
  • fastapi-async-crud: tối ưu cho các tác vụ CRUD bất đồng bộ
  • fastapi-dockerized: sẵn sàng cho triển khai bằng Docker
  • fastapi-psql-orm: tích hợp PostgreSQL + SQLAlchemy ORM
  • fastapi-single-module: cấu trúc một module đơn giản
  • fastapi-mcp: cấu trúc project FastAPI cơ bản để phát triển MCP server
  1. Bắt đầu với project trống

Nếu bạn muốn bắt đầu với một project trống gọn gàng, không cần cấu hình đặc biệt: fastkit init --project-name myproject

  1. Thêm route

Thêm một API route mới vào project hiện có: fastkit addroute myproject users # Thêm API route tên users vào project myproject

  1. Chạy development server

Chạy server trực tiếp mà không cần lệnh uvicorn riêng: fastkit runserver --reload --port 8000


[Tài liệu và tài nguyên]

Vui lòng tham khảo tài liệu chính thức để biết cách sử dụng chi tiết hơn:


Hy vọng công cụ này sẽ giúp ích phần nào cho những ai mới bắt đầu với FastAPI và Python.

Mọi phản hồi, câu hỏi và đóng góp đều được chào đón!

1 bình luận

 
310writer 2026-01-24

Tôi đã xem xét fastapi cho dự án mới.
Nó bao gồm tất cả những hạng mục mà tôi đang cân nhắc và đánh giá từng cái một.
Rất tuyệt vời. Cảm ơn bạn.