Cách sử dụng FastAPI để xây dựng dịch vụ API hiệu suất cao

2/20/2026
5 min read

Cách sử dụng FastAPI để xây dựng dịch vụ API hiệu suất cao

FastAPI là một framework web hiện đại, nhanh chóng (hiệu quả), được thiết kế đặc biệt để xây dựng API. Nó dựa trên các gợi ý kiểu Python và hỗ trợ lập trình bất đồng bộ, cho phép các nhà phát triển xây dựng dịch vụ API hiệu suất cao, có tính khả dụng cao và độ trễ thấp. Bài viết này sẽ hướng dẫn bạn chi tiết cách sử dụng FastAPI để xây dựng dịch vụ API hiệu suất cao, chúng tôi sẽ giải thích từng bước để giúp bạn thực hiện toàn bộ quá trình từ chuẩn bị môi trường đến triển khai.

Bước 1: Chuẩn bị môi trường

Bạn cần đảm bảo rằng môi trường phát triển của bạn đã cài đặt Python 3.6+. Nếu chưa cài đặt, bạn có thể truy cập trang web chính thức của Python để tải xuống và cài đặt.

Cài đặt FastAPI và Uvicorn

FastAPI bản thân nó không cung cấp dịch vụ, cần một máy chủ ASGI để chạy. Ở đây chúng tôi sử dụng Uvicorn, một máy chủ ASGI hiệu suất cao. Bạn có thể sử dụng lệnh sau để cài đặt FastAPI và Uvicorn:

pip install fastapi uvicorn

Bước 2: Xây dựng API cơ bản

Hãy tạo một ứng dụng FastAPI đơn giản.

Tạo tệp ứng dụng

Trong thư mục dự án của bạn, tạo một tệp Python, chẳng hạn như main.py, sau đó viết mã sau vào trong:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"message": "Hello, World!"}

Trong mã trên, chúng tôi đã nhập FastAPI và tạo một thể hiện app. Sau đó, chúng tôi định nghĩa một tuyến đường GET, khi truy cập vào đường dẫn gốc /, sẽ trả về một phản hồi JSON đơn giản.

Khởi động máy chủ

Khởi động máy chủ FastAPI của bạn bằng lệnh sau:

uvicorn main:app --reload
  • main: chỉ tên tệp, không có phần mở rộng .py.
  • app: chỉ thể hiện FastAPI.
  • --reload: trong chế độ phát triển, máy chủ sẽ tự động khởi động lại khi có thay đổi tệp.

Bước 3: Định nghĩa tuyến đường và mô hình dữ liệu

Để xây dựng API phức tạp, bạn cần sử dụng Pydantic để định nghĩa mô hình dữ liệu.

Tạo mô hình dữ liệu

Thêm nội dung sau vào main.py:

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float
    is_available: bool = True

Đoạn mã này sử dụng Pydantic để tạo một mô hình dữ liệu Item, bao gồm ba thuộc tính: tên sản phẩm, giá cả và tình trạng có sẵn.

Thêm tuyến đường mới

Tiếp theo, chúng ta có thể định nghĩa một tuyến đường POST mới để nhận dữ liệu kiểu Item:

@app.post("/items/")
async def create_item(item: Item):
    return {"item_name": item.name, "item_price": item.price}

Trong tuyến đường này, FastAPI sẽ tự động xác thực dữ liệu đầu vào và ánh xạ nó vào mô hình Item.

Bước 4: Tự động tạo tài liệu

Một trong những lợi thế lớn nhất của FastAPI là khả năng tự động tạo tài liệu API. Bạn có thể xem tài liệu bằng cách truy cập các địa chỉ sau:

  • Swagger UI: http://127.0.0.1:8000/docs
  • ReDoc: http://127.0.0.1:8000/redoc

Trong các tài liệu được tạo ra này, bạn có thể thử nghiệm API một cách tương tác, xem định dạng yêu cầu và phản hồi của từng tuyến đường.

Bước 5: Thêm xác thực

Trong ứng dụng thực tế, xác thực là một phần quan trọng. Hãy thêm một xác thực đơn giản dựa trên vai trò.

Thêm phụ thuộc bảo mật

Sử dụng phương thức Depends của FastAPI và OAuth2PasswordBearer để thực hiện xác thực:

from fastapi import Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

async def fake_decode_token(token):
    return {"sub": token}

async def get_current_user(token: str = Depends(oauth2_scheme)):
    user = fake_decode_token(token)
    if user is None:
        raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid authentication credentials")
    return user

Bảo vệ tuyến đường

Sau đó, bạn có thể thêm xác thực vào các tuyến đường cần bảo vệ:

@app.get("/users/me")
async def read_users_me(current_user: dict = Depends(get_current_user)):
    return current_user

Bước 6: Triển khai ứng dụng FastAPI

Khi bạn hoàn thành phát triển, bạn có thể cần triển khai ứng dụng lên máy chủ đám mây. Bạn có thể chọn sử dụng Docker để triển khai.

Tạo Dockerfile

Trong thư mục dự án, tạo một tệp có tên Dockerfile, nhập nội dung sau:

FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8

COPY ./app /app

Xây dựng hình ảnh Docker

Trong terminal của bạn, sử dụng lệnh sau để xây dựng hình ảnh Docker:

docker build -t myfastapiapp .

Chạy container Docker

Chạy ứng dụng FastAPI của bạn:

docker run -d --name fastapi -p 80:80 myfastapiapp

Tóm tắt

Trong bài viết này, chúng tôi đã giải thích chi tiết cách sử dụng FastAPI để xây dựng dịch vụ API hiệu suất cao, từ chuẩn bị môi trường đến tạo API cơ bản, định nghĩa tuyến đường và mô hình dữ liệu, cho đến việc thêm xác thực và triển khai. FastAPI cung cấp nhiều tính năng mạnh mẽ, giúp việc xây dựng API hiện đại trở nên đơn giản và hiệu quả, bạn có thể khám phá thêm nhiều tính năng và đặc điểm khác qua tài liệu chính thức. Hy vọng bài viết này sẽ giúp bạn nhanh chóng làm quen với FastAPI, nâng cao hiệu suất phát triển dự án của bạn!

Published in Technology

You Might Also Like

Cách sử dụng công nghệ điện toán đám mây: Hướng dẫn đầy đủ để xây dựng cơ sở hạ tầng đám mây đầu tiên của bạnTechnology

Cách sử dụng công nghệ điện toán đám mây: Hướng dẫn đầy đủ để xây dựng cơ sở hạ tầng đám mây đầu tiên của bạn

Cách sử dụng công nghệ điện toán đám mây: Hướng dẫn đầy đủ để xây dựng cơ sở hạ tầng đám mây đầu tiên của bạn Giới thiệu...

Cảnh báo! Cha đẻ của Claude Code thẳng thắn: Một tháng nữa không dùng Plan Mode, danh hiệu kỹ sư phần mềm sẽ biến mấtTechnology

Cảnh báo! Cha đẻ của Claude Code thẳng thắn: Một tháng nữa không dùng Plan Mode, danh hiệu kỹ sư phần mềm sẽ biến mất

Cảnh báo! Cha đẻ của Claude Code thẳng thắn: Một tháng nữa không dùng Plan Mode, danh hiệu kỹ sư phần mềm sẽ biến mất G...

2026年 Top 10 深度学习资源推荐Technology

2026年 Top 10 深度学习资源推荐

2026年 Top 10 深度学习资源推荐 随着深度学习在各个领域的迅速发展,越来越多的学习资源和工具涌现出来。本文将为您推荐2026年最值得关注的十个深度学习资源,帮助您在这一领域中快速成长。 1. Coursera Deep Learn...

Top 10 AI đại lý năm 2026: Phân tích điểm bán hàng cốt lõiTechnology

Top 10 AI đại lý năm 2026: Phân tích điểm bán hàng cốt lõi

Top 10 AI đại lý năm 2026: Phân tích điểm bán hàng cốt lõi Giới thiệu Với sự phát triển nhanh chóng của trí tuệ nhân tạo...

2026年 Top 10 AI 工具推荐:释放人工智能的真正潜力Technology

2026年 Top 10 AI 工具推荐:释放人工智能的真正潜力

2026年 Top 10 AI 工具推荐:释放人工智能的真正潜力 Trong thời đại công nghệ phát triển nhanh chóng ngày nay, trí tuệ nhân tạo (AI) đã trở ...

2026年 Top 10 AWS工具和资源推荐Technology

2026年 Top 10 AWS工具和资源推荐

2026年 Top 10 AWS工具和资源推荐 Trong lĩnh vực điện toán đám mây đang phát triển nhanh chóng, Amazon Web Services (AWS) luôn là ...