×

Sử dụng FastAPI để tạo API RESTful hiệu suất cao trong Python

Việc xây dựng các API RESTful hiệu suất cao trong Python trở nên đơn giản và hiệu quả hơn bao giờ hết nhờ vào sự hỗ trợ của FastAPI. Đây là một framework mạnh mẽ và linh hoạt giúp các nhà phát triển dễ dàng xây dựng, triển khai và duy trì các API với hiệu suất cao. Bài viết này sẽ giới thiệu cách sử dụng FastAPI để tạo ra các API RESTful mạnh mẽ trong Python.

Giới Thiệu Về FastAPI

Một trong những điểm nổi bật của FastAPI là tốc độ của nó. Framework này được xây dựng trên nền tảng ASGI (Asynchronous Server Gateway Interface), cho phép xử lý cùng lúc nhiều yêu cầu một cách hiệu quả. FastAPI cũng tận dụng các tính năng mới nhất của Python như type hints để tự động sinh ra các tài liệu API và kiểm tra dữ liệu, giúp các nhà phát triển tiết kiệm thời gian.

Cài Đặt FastAPI

Trước tiên, chúng ta cần cài đặt FastAPI và uvicorn, một ASGI server cho phép chạy ứng dụng FastAPI một cách hiệu quả.

pip install fastapi uvicorn

Tạo Ứng Dụng Đầu Tiên

Sau khi cài đặt, chúng ta sẽ bắt đầu với một ứng dụng FastAPI đơn giản. Tạo một file main.py với nội dung như sau:

from fastapi import FastAPI

app = FastAPI()

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

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

Trong ví dụ trên, chúng ta đã tạo một ứng dụng FastAPI với hai endpoint:

  • / trả về một thông điệp "Hello World!"
  • /items/{item_id} trả về một đối tượng JSON chứa item_id và một tham số query tuỳ chọn là q.

Chạy Ứng Dụng

Để chạy ứng dụng, sử dụng uvicorn:

uvicorn main:app --reload

Thêm CRUD Operation

Bây giờ, chúng ta sẽ thêm các hoạt động CRUD cho một đối tượng Item. Trước hết, định nghĩa một model Item sử dụng Pydantic:

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None

Sau đó, thêm các endpoint tương ứng trong main.py:

from typing import Optional

items = {}

@app.post("/items/")
def create_item(item: Item):
    item_id = len(items) + 1
    items[item_id] = item
    return items[item_id]

@app.get("/items/{item_id}")
def read_item(item_id: int):
    return items[item_id]

@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
    items[item_id] = item
    return items[item_id]

@app.delete("/items/{item_id}")
def delete_item(item_id: int):
    return items.pop(item_id)

Sử Dụng và Kiểm Tra

FastAPI tự động sinh ra các tài liệu API theo chuẩn OpenAPI, bạn có thể kiểm tra tại http://127.0.0.1:8000/docs. Tại đây, bạn có thể xem và kiểm tra các endpoint một cách trực quan.

Kết Luận

Việc sử dụng FastAPI để tạo API RESTful trong Python không chỉ mang lại hiệu suất cao mà còn rất dễ dàng và tiện lợi. Với hỗ trợ mạnh mẽ từ Pydantic và type hints, việc kiểm tra dữ liệu và tài liệu hóa API trở nên đơn giản hơn bao giờ hết. Chắc chắn rằng FastAPI sẽ là một lựa chọn tuyệt vời cho bất kỳ nhà phát triển Python nào muốn tạo ra các API RESTful mạnh mẽ và hiệu quả.

Comments