0
0
Lập trình
Admin Team
Admin Teamtechmely

Hướng Dẫn Chi Tiết Về Routing Trong FastAPI - Ngày 2

Đăng vào 2 tháng trước

• 4 phút đọc

Hướng Dẫn Chi Tiết Về Routing Trong FastAPI - Ngày 2

Giới thiệu về FastAPI và Routing

FastAPI là một framework web mạnh mẽ, dễ sử dụng, đặc biệt ưu việt trong việc xây dựng APIs. Trong bài viết này, chúng ta sẽ tìm hiểu về quá trình routing trong FastAPI, cách định nghĩa các đường dẫn (endpoints) cùng với các phương thức HTTP, từ đó giúp bạn xây dựng các API có cấu trúc rõ ràng và dễ bảo trì.

1. Routing Trong FastAPI Là Gì?

Routing là quá trình xác định các đường dẫn (endpoints) trong một API và kết hợp chúng với các hàm xử lý (route handlers). Khi một client gửi yêu cầu đến server, FastAPI sẽ dựa vào route được định nghĩa để thực hiện xử lý. Ví dụ, nếu một client gửi GET request đến đường dẫn /, FastAPI sẽ tìm và thực thi hàm xử lý tương ứng.

2. Cách Định Nghĩa Routing Trong FastAPI

FastAPI sử dụng decorators để định nghĩa các route cho các phương thức HTTP, chẳng hạn như GET, POST, PUT, và DELETE. Những decorators này cho phép lập trình viên chỉ định loại phương thức HTTP và kết nối nó với các hàm xử lý.

Ví Dụ Định Nghĩa Các Route:

python Copy
from fastapi import FastAPI

app = FastAPI()

# Route cho GET request tại đường dẫn "/"
@app.get("/")
def read_root():
    return {"Hello": "World"}

# Route cho POST request tại đường dẫn "/items/"
@app.post("/items/")
async def create_item(item: dict):
    return item

3. Các Phương Thức HTTP Trong Routing

Mỗi phương thức HTTP (GET, POST, PUT, DELETE) có chức năng riêng biệt, thường được sử dụng để thực hiện các hành động trên tài nguyên (resources) của server.

Các Phương Thức HTTP Phổ Biến:

  • GET: Lấy dữ liệu từ server mà không làm thay đổi trạng thái của server.
  • POST: Tạo một tài nguyên mới trên server.
  • PUT: Cập nhật một tài nguyên hiện có trên server.
  • DELETE: Xóa một tài nguyên trên server.

Ví Dụ Sử Dụng Các Phương Thức HTTP:

python Copy
from fastapi import FastAPI

app = FastAPI()

# GET request
@app.get("/")
def read_root():
    return {"Hello": "World"}

# POST request
@app.post("/items/")
async def create_item(item: dict):
    return item

# PUT request
@app.put("/items/{item_id}")
async def update_item(item_id: int, item: dict):
    return {"item_id": item_id, "item": item}

# DELETE request
@app.delete("/items/{item_id}")
async def delete_item(item_id: int):
    return {"item_id": item_id}

4. Tại Sao Routing Quan Trọng?

  • Quản lý dễ dàng: Các route giúp định nghĩa rõ ràng các endpoints trong API, từ đó quản lý API trở nên dễ dàng hơn khi ứng dụng phát triển.
  • Tăng khả năng mở rộng: FastAPI cho phép bạn mở rộng ứng dụng bằng cách dễ dàng thêm các endpoint mới và sử dụng các phương thức HTTP khác nhau để thực hiện các hành động với tài nguyên.

5. Ví Dụ Cụ Thể Về Routing

Dưới đây là một ví dụ cụ thể về cách sử dụng routing trong FastAPI để xây dựng một API cho cửa hàng bán hàng trực tuyến:

python Copy
from fastapi import FastAPI

app = FastAPI()

@app.get("/products/")
def get_products():
    return {"products": [{"name": "Laptop", "price": 1000}, {"name": "Smartphone", "price": 500}]}

@app.post("/products/")
async def create_product(product: dict):
    return {"message": "Product created", "product": product}

@app.put("/products/{product_id}")
async def update_product(product_id: int, product: dict):
    return {"message": "Product updated", "product_id": product_id, "product": product}

@app.delete("/products/{product_id}")
async def delete_product(product_id: int):
    return {"message": "Product deleted", "product_id": product_id}

6. Tóm Tắt

  • Routing trong FastAPI cho phép bạn định nghĩa các endpoint và xử lý các yêu cầu HTTP từ client.
  • Các HTTP methods như GET, POST, PUT, DELETE phục vụ cho các mục đích khác nhau khi tương tác với tài nguyên trên server.
  • FastAPI sử dụng decorators để dễ dàng định nghĩa và xử lý các yêu cầu từ client.

7. Thực Hành Với Một Mini Project

Trong phần thực hành, bạn sẽ xây dựng một API quản lý sách với các chức năng:

  • Lấy danh sách tất cả sách (GET).
  • Thêm sách mới (POST).
  • Cập nhật thông tin sách (PUT).
  • Xóa sách (DELETE).

Các Bước Thực Hiện:

  1. Tạo một ứng dụng FastAPI mới.
  2. Định nghĩa các route cho các phương thức HTTP như đã nêu ở trên.
  3. Sử dụng danh sách trong bộ nhớ để lưu trữ sách.

Tạo FastAPI

python Copy
from fastapi import FastAPI

app = FastAPI()

books = []

# 1. Lấy danh sách tất cả sách
@app.get("/books/")
def get_books():
    return books

Thêm, Cập Nhật, và Xóa Sách

Bạn sẽ cần định nghĩa thêm các route cho POST, PUT và DELETE giống như trong ví dụ trước đó.

Kiểm Tra Với Swagger UI

FastAPI tự động tạo giao diện Swagger UI. Bạn có thể thử nghiệm API của mình qua trình duyệt bằng đường dẫn http://127.0.0.1:8000/docs.

Kết Luận

Bài viết này đã hướng dẫn bạn thực hành cơ bản về routing trong FastAPI và cách sử dụng Postman để tương tác với API. Hy vọng bạn đã nắm vững kiến thức cần thiết để tiếp tục phát triển các ứng dụng API phức tạp hơn.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào