Hướng Dẫn Chi Tiết Về REST API Với Python
Giới thiệu
Nếu bạn đã từng đặt món ăn qua một ứng dụng hoặc kiểm tra thời tiết trực tuyến, bạn đã sử dụng API. Nhưng REST API là gì và làm thế nào để xây dựng một REST API bằng Python? Trong hướng dẫn này, chúng ta sẽ đi từng bước — từ việc hiểu REST đến việc tạo một API đơn giản bằng FastAPI.
REST là gì?
REST (Representational State Transfer) là một tập hợp các quy tắc để thiết kế các dịch vụ web. Ý tưởng rất đơn giản: các khách hàng (như ứng dụng hoặc trình duyệt) giao tiếp với các máy chủ thông qua các phương thức HTTP.
Các phương thức chính
- GET → lấy dữ liệu
- POST → tạo dữ liệu
- PUT → cập nhật dữ liệu
- DELETE → xóa dữ liệu
👉 Ví dụ: Một ứng dụng giao thức ăn có thể sử dụng:
GET /menu→ để lấy danh sách món ănPOST /order→ để đặt hàngDELETE /order/5→ để hủy đơn hàng số 5
Tại sao chọn Python cho REST API?
- Dễ học.
- Hệ sinh thái lớn của các framework.
- Các tùy chọn phổ biến:
Flask, Django REST Framework, vàFastAPI.
Chúng ta sẽ sử dụng FastAPI vì nó hiện đại, nhanh và thân thiện với người mới bắt đầu.
Tạo REST API đầu tiên của bạn với Python (FastAPI)
1. Cài đặt FastAPI & Uvicorn
bash
pip install fastapi uvicorn
2. Tạo tệp main.py
python
from fastapi import FastAPI
app = FastAPI()
@app.get("/hello")
def hello():
return {"message": "Hello, world!"}
3. Chạy máy chủ
bash
uvicorn main:app --reload
Bây giờ mở: http://127.0.0.1:8000/hello
Bạn sẽ thấy:
json
{"message": "Hello, world!"}
Ví dụ CRUD đơn giản (API To-Do)
python
todos = []
@app.get("/todos")
def get_todos():
return todos
@app.post("/todos")
def add_todo(item: str):
todos.append(item)
return {"status": "added", "item": item}
GET /todos→ hiển thị tất cả các tác vụPOST /todos?item=Learn FastAPI→ thêm tác vụ mới
Kiểm tra API
- Postman (công cụ GUI).
- Thunder Client (tiện ích mở rộng VS Code).
- cURL (dòng lệnh).
Các thực tiễn tốt nhất khi làm việc với REST API
- Sử dụng mã trạng thái HTTP chính xác: Hãy đảm bảo bạn sử dụng mã trạng thái phù hợp cho từng loại phản hồi (200 cho thành công, 404 cho không tìm thấy, 500 cho lỗi máy chủ, v.v.).
- Tài liệu API: Tạo tài liệu chi tiết cho API của bạn để giúp người phát triển khác dễ dàng sử dụng.
- Sử dụng xác thực: Đảm bảo rằng API của bạn bảo mật bằng cách sử dụng xác thực như OAuth hoặc API Keys.
Những cạm bẫy thường gặp
- Không xử lý lỗi: Đảm bảo rằng bạn xử lý các lỗi có thể xảy ra và trả về thông báo lỗi rõ ràng cho người dùng.
- Thời gian phản hồi chậm: Tối ưu hóa mã của bạn để giảm thời gian phản hồi của API.
Mẹo hiệu suất
- Sử dụng caching: Sử dụng các giải pháp caching như Redis để tăng tốc độ tải cho các yêu cầu thường xuyên.
- Giới hạn số lượng yêu cầu: Để tránh quá tải máy chủ, hãy áp dụng giới hạn cho số lượng yêu cầu từ mỗi người dùng.
Giải quyết sự cố
Nếu bạn gặp phải lỗi khi chạy ứng dụng, hãy kiểm tra:
- Cấu hình môi trường phát triển (cài đặt package).
- Cách các endpoint được định nghĩa và gọi.
- Xem lại các thông báo lỗi trong console.
Kết luận
- REST API kết nối các ứng dụng, trang web và máy chủ ở khắp mọi nơi.
- Chỉ với vài dòng mã Python, bạn có thể tạo ra các API mạnh mẽ.
- Bước tiếp theo? Hãy thử xây dựng dự án nhỏ của riêng bạn — có thể là một ứng dụng ghi chú hoặc hệ thống quản lý sinh viên.
👉 Nếu bạn thấy bài viết này hữu ích, hãy theo dõi tôi — tôi sẽ chia sẻ thêm nhiều thông tin về phát triển backend với FastAPI & PostgreSQL.