Quay lại danh sách bài viết

FastAPI - Framework Python Hiện Đại Cho API Development

30 tháng 11, 2025
admin
FastAPI - Framework Python Hiện Đại Cho API Development
# FastAPI - Framework Python Hiện Đại Cho API Development <div className="search-container"> <input type="text" placeholder="Tìm kiếm trong bài viết..." className="search-input" onChange={(e) => { const searchText = e.target.value.toLowerCase(); const content = document.querySelector('.markdown'); const text = content.textContent.toLowerCase(); if (text.includes(searchText)) { const regex = new RegExp(searchText, 'gi'); content.innerHTML = content.innerHTML.replace(regex, match => `<mark>${match}</mark>`); } }} /> </div> ![FastAPI Features](/img/blog/fastapi_features.svg) FastAPI là một framework web hiện đại, nhanh (high-performance) cho việc xây dựng API với Python 3.7+. Nó được xây dựng dựa trên các tiêu chuẩn Python type hints và cung cấp một cách tiếp cận hiện đại để phát triển API. ## Tại Sao Chọn FastAPI? ### 1. Hiệu Suất Cao FastAPI là một trong những framework Python nhanh nhất hiện nay: - Dựa trên Starlette và Pydantic - Hỗ trợ async/await - Hiệu suất tương đương với NodeJS và Go ### 2. Type Safety FastAPI tận dụng Python type hints để: - Tự động validate dữ liệu - Tạo tài liệu API tự động - Phát hiện lỗi trong quá trình phát triển ### 3. Tài Liệu Tự Động FastAPI tự động tạo tài liệu API: - Swagger UI (/docs) - ReDoc (/redoc) - OpenAPI specification ## Cài Đặt và Bắt Đầu ### 1. Cài Đặt ```bash pip install fastapi uvicorn ``` ### 2. Tạo Ứng Dụng Đầu Tiên ```python from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} ``` ### 3. Chạy Server ```bash uvicorn main:app --reload ``` ## Các Tính Năng Chính ### 1. Path Parameters ```python @app.get("/items/{item_id}") async def read_item(item_id: int): return {"item_id": item_id} ``` ### 2. Query Parameters ```python @app.get("/items/") async def read_items(skip: int = 0, limit: int = 10): return {"skip": skip, "limit": limit} ``` ### 3. Request Body ```python from pydantic import BaseModel class Item(BaseModel): name: str price: float is_offer: bool = None @app.post("/items/") async def create_item(item: Item): return item ``` ### 4. Form Data ```python from fastapi import Form @app.post("/login/") async def login(username: str = Form(...), password: str = Form(...)): return {"username": username} ``` ## Dependency Injection FastAPI có hệ thống dependency injection mạnh mẽ: ```python from fastapi import Depends async def common_parameters(q: str = None, skip: int = 0, limit: int = 100): return {"q": q, "skip": skip, "limit": limit} @app.get("/items/") async def read_items(commons: dict = Depends(common_parameters)): return commons ``` ## Bảo Mật ### 1. OAuth2 với JWT ```python from fastapi.security import OAuth2PasswordBearer oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") @app.get("/users/me") async def read_users_me(token: str = Depends(oauth2_scheme)): return {"token": token} ``` ### 2. CORS ```python from fastapi.middleware.cors import CORSMiddleware app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) ``` ## Testing FastAPI hỗ trợ testing dễ dàng: ```python from fastapi.testclient import TestClient client = TestClient(app) def test_read_main(): response = client.get("/") assert response.status_code == 200 assert response.json() == {"message": "Hello World"} ``` ## Deployment ### 1. Uvicorn ```bash uvicorn main:app --host 0.0.0.0 --port 8000 ``` ### 2. Docker ```dockerfile FROM python:3.9 WORKDIR /code COPY ./requirements.txt /code/requirements.txt RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt COPY ./app /code/app CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"] ``` ## Kết Luận FastAPI là một framework hiện đại, mạnh mẽ và dễ sử dụng cho việc phát triển API với Python. Với hiệu suất cao, type safety và tài liệu tự động, FastAPI là lựa chọn tuyệt vời cho các dự án API hiện đại. Nếu bạn đang tìm kiếm một framework Python hiện đại để xây dựng API, FastAPI chắc chắn là một lựa chọn đáng cân nhắc.
fastapi
python
api
web-development
Chia sẻ:

Bài viết liên quan

Top 5 thư viện Python cần biết: Pandas, Numpy, Matplotlib, Yfinance, TA-Lib

Top 5 thư viện Python cần biết: Pandas, Numpy, Matplotlib, Yfinance, TA-Lib Python là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay, đặ...

SQLAlchemy với SQL Server

Cách sử dụng thư viện SQLAlchemy để thao tác cơ sở dữ liệu SQL Server ![SQLAlchemy với SQL Server](/img/blog/sqlalchemy.jpg) SQLAlchemy là một t...

Tìm Hiểu Về Tính Năng API Của Node.js và Supabase

Tìm Hiểu Về Tính Năng API Của Node.js và Supabase Node.js và Supabase là hai công nghệ mạnh mẽ trong việc xây dựng backend và API. Trong bài viết n...