
FastAPI dành cho người mới bắt đầu: Hướng dẫn thực hành (Phần 1)
Trong quá trình bước đầu tìm hiểu lĩnh vực phát triển backend, người viết đã tiếp cận nhiều bài hướng dẫn và tài liệu giá trị về FastAPI; trong đó, một số tài liệu phân tích sâu về mặt khái niệm, số khác lại chú trọng phương pháp thực hành. Xuất phát từ nhu cầu kết nối và hệ thống hóa các kiến thức một cách mạch lạc trong quá trình nghiên cứu, loạt bài gồm hai phần này được xây dựng nhằm ghi lại những nội dung đã tiếp thu. Loạt bài không nhằm thay thế các tài liệu hướng dẫn chi tiết hay văn bản chính thức, mà được xem như một phần giới thiệu mang tính thực tiễn dành cho sinh viên và
Trong quá trình tìm hiểu về phát triển backend, có rất nhiều tài liệu và hướng dẫn chất lượng về FastAPI, từ việc đi sâu vào lý thuyết đến phương pháp thực hành. Đối với những người mới tiếp cận lĩnh vực này, nhu cầu kết nối các khái niệm để nắm bắt tổng thể hệ thống là rất cần thiết. Do đó, loạt bài viết gồm hai phần này được biên soạn nhằm hệ thống hóa một số khái niệm cơ bản. Nội dung không nhằm thay thế các tài liệu chính thức hay hướng dẫn chuyên sâu, mà đóng vai trò như một bài giới thiệu thực hành cho sinh viên và người mới bước đầu nghiên cứu về FastAPI.Trước khi bắt đầu: Đối tượng của bài viết
Bài viết dành cho độc giả đã có kiến thức cơ bản về Python, API, các phương thức HTTP và JSON. Đối với sinh viên hoặc người mới bắt đầu tìm hiểu về backend, bài viết này cung cấp một ví dụ đơn giản nhằm hỗ trợ việc liên kết các khái niệm nói trên. Nội dung tập trung vào nguyên lý vận hành cơ bản thay vì bao quát toàn bộ các tính năng của FastAPI.1. FastAPI là gì?
Xét trường hợp xây dựng một ứng dụng.
Giao diện người dùng (frontend) đảm nhận phần hiển thị và tương tác trực tiếp với người dùng. Phần phụ trợ (backend) xử lý các logic vận hành phía sau: truy xuất thông tin, xử lý yêu cầu, kết nối cơ sở dữ liệu và gửi phản hồi.
Để xây dựng hệ thống backend đó, cần có các công cụ phù hợp.
FastAPI là một giải pháp tiêu biểu cho yêu cầu này.
FastAPI là một framework web hiện đại viết bằng ngôn ngữ Python, được sử dụng để xây dựng API. Nền tảng này cho phép thiết lập các điểm cuối (endpoint), tiếp nhận yêu cầu, xử lý dữ liệu và trả về phản hồi mà không đòi hỏi phải tự thiết kế toàn bộ hạ tầng cơ sở.
Những ưu điểm nổi bật của FastAPI:
Dễ tiếp cận: Cú pháp quen thuộc với những người đã nắm vững Python.
Tốc độ cao: Được xây dựng trên nền tảng Starlette và hỗ trợ lập trình bất đồng bộ.
Tự động lập tài liệu: Tự động khởi tạo tài liệu tương tác cho API thông qua chuẩn OpenAPI.
Kiểm thực dữ liệu: Ứng dụng Pydantic để xác thực dữ liệu đầu vào.
Tối ưu cho lập trình viên: Cho phép xây dựng các API hoàn chỉnh với lượng mã nguồn ngắn gọn.
Một điểm đáng chú ý là FastAPI có khả năng tích hợp rất thuận tiện vào các ứng dụng tích hợp trí tuệ nhân tạo (AI) hiện nay. Dù phục vụ xây dựng chatbot, công cụ tóm tắt văn bản hay ứng dụng web, FastAPI đều có thể đóng vai trò làm backend kết nối toàn bộ hệ thống.
Trước khi tìm hiểu sâu hơn, bước đầu tiên là khởi chạy một ứng dụng cơ bản.
2. Khởi chạy ứng dụng FastAPI
Quy trình thiết lập không đòi hỏi môi trường phát triển phức tạp.
Trên hệ thống đã cài đặt Python, mở terminal và tiến hành cài đặt FastAPI cùng Uvicorn:
pip install fastapi uvicornSơ lược về Uvicorn: FastAPI có nhiệm vụ định nghĩa ứng dụng và các điểm cuối, trong khi Uvicorn đóng vai trò máy chủ web để chạy ứng dụng và tiếp nhận các yêu cầu HTTP.
Tiếp theo, tạo một tệp Python có tên main.py.
Nội dung tệp như sau:
from fastapi import FastAPIapp = FastAPI()@app.get("/")
def home():
return {"message": "Hello World"}Đây là ứng dụng FastAPI cơ bản đầu tiên.
Ý nghĩa của các thành phần chính:
app = FastAPI() dùng để tạo một thực thể (instance) cho ứng dụng FastAPI.
@app.get("/") thông báo cho FastAPI rằng hàm bên dưới sẽ xử lý các yêu cầu GET gửi tới đường dẫn gốc.
home() là hàm Python được thực thi khi điểm cuối đó nhận yêu cầu.
Hàm này trả về một dictionary trong Python, sau đó FastAPI sẽ tự động chuyển đổi thành phản hồi định dạng JSON.
Cách thức vận hành ứng dụng:
Mở terminal và thực thi câu lệnh:
uvicorn main:app --reloadTrong đó:
main chỉ tệp Python.
app chỉ thực thể FastAPI bên tr
ở bên trong.
Tham số `--reload` tự động khởi động lại máy chủ khi có thay đổi trong mã nguồn.
Sau khi máy chủ khởi động, truy cập địa chỉ:
http://127.0.0.1:8000
Kết quả hiển thị như sau:
{
"message": "Hello World"
}Điểm cuối (endpoint) FastAPI đầu tiên đã được khởi tạo và vận hành thành công.
Đây cũng là một ưu điểm nổi bật của FastAPI.
Truy cập đường dẫn http://127.0.0.1:8000/docs.
Giao diện tài liệu API tương tác sẽ xuất hiện, cho phép tra cứu các endpoint và thử nghiệm gửi yêu cầu trực tiếp từ trình duyệt.
Quá trình này không đòi hỏi bất kỳ bước thiết lập tài liệu riêng biệt nào.
Sau khi ứng dụng đã vận hành, bước tiếp theo là xây dựng các tính năng nâng cao hơn thay vì chỉ trả về thông điệp “Hello World”.
Chỉ với 5 dòng mã Python, nền tảng backend cơ bản đã được thiết lập. 3. Xây dựng nền tảng sự kiện học đường (Campus Events Platform)
Nhằm minh họa các khái niệm một cách trực quan, bài viết xây dựng mô hình API Sự kiện học đường (Campus Events API) đơn giản. Nền tảng này hỗ trợ sinh viên theo dõi các sự kiện sắp diễn ra, tìm kiếm sự kiện theo danh mục và đăng ký tham gia. Ví dụ này sẽ được sử dụng xuyên suốt để làm rõ cơ chế hoạt động của các API endpoint. Ở giai đoạn này, trọng tâm là tìm hiểu cấu trúc API thay vì triển khai một hệ thống backend hoàn chỉnh. Giả định trường đại học chưa có nền tảng tập trung để sinh viên theo dõi các sự kiện sắp tới.
Các thông tin về hội thảo kỹ thuật, cuộc thi lập trình (hackathon), lễ hội văn hóa hay bài giảng của khách mời hiện phân tán qua thư điện tử, các nhóm WhatsApp và áp phích.
Giải pháp đặt ra là xây dựng một nền tảng sự kiện học đường (Campus Events Platform).
Mục tiêu vận hành gồm các yêu cầu cơ bản:
Sinh viên có thể xem các sự kiện sắp diễn ra.
Sinh viên có thể lọc sự kiện theo danh mục.
Sinh viên có thể đăng ký tham gia sự kiện.
Ban tổ chức có thể tạo mới, cập nhật hoặc hủy bỏ sự kiện.
Giao diện người dùng (frontend) có thể được xây dựng bằng React, hiển thị thẻ thông tin sự kiện, bộ lọc tìm kiếm và biểu mẫu đăng ký.
Tuy nhiên, nguồn dữ liệu sự kiện được truy xuất từ đâu?
Frontend sẽ gửi các yêu cầu đến hệ thống backend viết bằng FastAPI; hệ thống này sẽ xử lý dữ liệu và phản hồi kết quả tương ứng.
Khởi đầu bằng tương tác cơ bản nhất.
Truy xuất sự kiện: Phương thức GET
Khi sinh viên truy cập nền tảng.
Trang chủ cần hiển thị danh sách các sự kiện sắp diễn ra. Frontend gửi một yêu cầu đến backend để nhận dữ liệu này.
Endpoint phục vụ mục đích này được khởi tạo thông qua phương thức GET:
@app.get("/events")
def get_events():
return [
{"id": 1, "name": "AI Workshop"},
{"id": 2, "name": "Campus Hackathon"},
{"id": 3, "name": "Cultural Night"}
]Lưu ý cú pháp @app.get("/events").
Cú pháp này chỉ dẫn cho FastAPI rằng mỗi khi có yêu cầu GET


Nguồn tin: Medium Towards AI — Tác giả: Tejas Nidhankar. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.