Apidog

Nền tảng phát triển API hợp tác tất cả trong một

Thiết kế API

Tài liệu API

Gỡ lỗi API

Giả lập API

Kiểm thử API tự động

Cách sử dụng FastAPI để tạo và xử lý các yêu cầu POST

Khám phá cách sử dụng FastAPI để tạo và xử lý các yêu cầu POST. Hướng dẫn toàn diện này bao gồm thiết lập, xác thực dữ liệu, tải tệp và nhiều hơn nữa. Hoàn hảo cho cả những người mới bắt đầu và các nhà phát triển có kinh nghiệm. #FastAPI #API #apidog.com

Minh Triết

Minh Triết

Updated on tháng 11 29, 2024

Nếu bạn đang khám phá thế giới phát triển web hiện đại, có lẽ bạn đã nghe về FastAPI. Đây là một trong những framework phát triển nhanh nhất để xây dựng API bằng Python. Trong bài viết này, chúng tôi sẽ khám phá cách sử dụng FastAPI để tạo và xử lý các yêu cầu POST. Bất kể bạn là một nhà phát triển kỳ cựu hay mới bắt đầu, hướng dẫn này sẽ giúp bạn hiểu những điều cơ bản và hơn thế nữa.

button

FastAPI là gì?

FastAPI là một framework web hiện đại, nhanh (hiệu suất cao) để xây dựng API với Python 3.7+ dựa trên những gợi ý kiểu Python chuẩn. Nó được thiết kế để dễ sử dụng và cung cấp hiệu suất cao tương đương với Node.js và Go. Framework này cũng rất trực quan và đơn giản, khiến nó trở thành một lựa chọn tuyệt vời cho cả người mới bắt đầu và các chuyên gia.

Tại sao sử dụng FastAPI?

Có nhiều lý do khiến các nhà phát triển chọn FastAPI hơn các framework khác:

  1. Tốc độ: FastAPI rất nhanh. Thực tế, nó là một trong những framework web nhanh nhất hiện có ngày nay.
  2. Dễ sử dụng: Với tài liệu tương tác tự động (nhờ vào Swagger UI và ReDoc), việc kiểm tra API của bạn cực kỳ dễ dàng.
  3. Kiểm tra dữ liệu: FastAPI sử dụng Pydantic để kiểm tra dữ liệu, điều này đảm bảo rằng dữ liệu mà API của bạn nhận được là hợp lệ.
  4. Hỗ trợ bất đồng bộ: Nó hỗ trợ lập trình bất đồng bộ ngay lập tức, làm cho nó phù hợp với các ứng dụng web hiện đại, hiệu suất cao.
Fast api

Thiết lập FastAPI

Trước khi chúng ta đi sâu vào các yêu cầu POST, hãy nhanh chóng thiết lập FastAPI. Bạn sẽ cần cài đặt Python trên hệ thống của mình. Sau đó, bạn có thể cài đặt FastAPI và một máy chủ ASGI, chẳng hạn như Uvicorn, bằng cách sử dụng pip:

pip install fastapi uvicorn

Khi bạn đã cài đặt FastAPI, bạn có thể tạo một ứng dụng FastAPI đơn giản. Hãy bắt đầu bằng cách tạo một tệp có tên main.py:

from fastapi import FastAPI

app = FastAPI()

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

Để chạy ứng dụng, hãy sử dụng Uvicorn:

uvicorn main:app --reload

Mở trình duyệt của bạn và điều hướng đến http://127.0.0.1:8000. Bạn sẽ thấy một phản hồi JSON: {"Hello": "World"}.

Post request

Tạo một endpoint POST

Bây giờ chúng ta đã có một ứng dụng FastAPI cơ bản đang chạy, hãy thêm một endpoint POST. Các yêu cầu POST được sử dụng để gửi dữ liệu để được xử lý đến một tài nguyên xác định. Để xử lý một yêu cầu POST trong FastAPI, bạn sử dụng trình trang trí @app.post.

Dưới đây là một ví dụ đơn giản về cách xử lý một yêu cầu POST:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

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

@app.post("/items/")
def create_item(item: Item):
    return item

Trong ví dụ này:

  1. Chúng ta định nghĩa một instance FastAPI.
  2. Chúng ta tạo một mô hình Pydantic Item mô tả cấu trúc dữ liệu của thân yêu cầu.
  3. Chúng ta sử dụng trình trang trí @app.post để xác định một endpoint POST /items/.
  4. Hàm create_item nhận một đối tượng Item làm đầu vào và trả về nó.

Để kiểm tra điều này, bạn có thể sử dụng một khách hàng API như apidog hoặc đơn giản là sử dụng Swagger UI tương tác do FastAPI cung cấp tại http://127.0.0.1:8000/docs.

Xử lý dữ liệu và kiểm tra dữ liệu

FastAPI tự động xác thực dữ liệu yêu cầu với mô hình Pydantic. Nếu dữ liệu không tuân theo mô hình, FastAPI sẽ trả về mã trạng thái 422 với thông tin chi tiết về các lỗi kiểm tra dữ liệu.

Ví dụ, nếu bạn gửi một yêu cầu POST đến /items/ với thân JSON sau:

{
    "name": "Tên mục",
    "price": 25.5
}

FastAPI sẽ chấp nhận yêu cầu này vì nó đáp ứng các yêu cầu của mô hình Item. Tuy nhiên, nếu bạn bỏ qua trường price, FastAPI sẽ từ chối yêu cầu và trả về lỗi.

Sử dụng Apidog để kiểm tra yêu cầu POST FastAPI của bạn

Apidog là một công cụ mạnh mẽ để kiểm tra API. Nó cho phép bạn tạo và lưu trữ các yêu cầu API, tổ chức chúng thành các bộ sưu tập, và chia sẻ chúng với nhóm của bạn.

button

Dưới đây là cách bạn có thể sử dụng Apidog để kiểm tra yêu cầu POST của mình:

  1. Mở Apidog và tạo một yêu cầu mới.
Chọn yêu cầu mới

2. Đặt phương thức yêu cầu thành POST.

Chọn yêu cầu Post

3. Nhập URL của tài nguyên bạn muốn cập nhật. Thêm bất kỳ tiêu đề hoặc tham số nào bạn muốn đưa vào sau đó nhấp vào nút “Gửi” để gửi yêu cầu.

4. Xác minh rằng phản hồi đúng như bạn mong đợi.

Xác minh phản hồi

Các yêu cầu POST nâng cao

Bây giờ, hãy khám phá một số kịch bản nâng cao hơn. FastAPI cho phép bạn làm nhiều điều hơn với các yêu cầu POST. Ví dụ, bạn có thể:

  • Xử lý tải tệp: Sử dụng FileUploadFile từ fastapi.
  • Xử lý dữ liệu biểu mẫu: Sử dụng Form từ fastapi.
  • Sử dụng tham số đường dẫn: Kết hợp tham số đường dẫn với các yêu cầu POST.

Xử lý tải tệp

Dưới đây là một ví dụ về cách xử lý việc tải tệp với FastAPI:

from fastapi import FastAPI, File, UploadFile

app = FastAPI()

@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile):
    return {"filename": file.filename}

Endpoint này sẽ chấp nhận một tệp và trả về tên tệp. Bạn có thể kiểm tra điều này với apidog hoặc Swagger UI.

Xử lý dữ liệu biểu mẫu

Để xử lý dữ liệu biểu mẫu, sử dụng lớp Form từ FastAPI:

from fastapi import FastAPI, Form

app = FastAPI()

@app.post("/login/")
def login(username: str = Form(...), password: str = Form(...)):
    return {"username": username}

Ví dụ này tạo ra một endpoint đăng nhập chấp nhận dữ liệu biểu mẫu. Bạn có thể kiểm tra điều này bằng cách gửi biểu mẫu trong trình duyệt hoặc một công cụ kiểm tra API.

Sử dụng tham số đường dẫn

Bạn cũng có thể kết hợp tham số đường dẫn với các yêu cầu POST:

from fastapi import FastAPI

app = FastAPI()

@app.post("/users/{user_id}/items/")
def create_item_for_user(user_id: int, item: Item):
    return {"user_id": user_id, "item": item}

Endpoint này tạo một mục cho một người dùng cụ thể, được xác định bởi tham số đường dẫn user_id.

Kết luận

FastAPI là một framework mạnh mẽ giúp dễ dàng xây dựng các API mạnh mẽ bằng Python. Sự hỗ trợ của nó cho việc kiểm tra dữ liệu, tài liệu tương tác và hiệu suất cao làm cho nó trở thành một lựa chọn xuất sắc cho phát triển web hiện đại.

Trong bài viết này, chúng tôi đã đề cập đến cách thiết lập một ứng dụng FastAPI và xử lý các yêu cầu POST. Chúng tôi cũng đã khám phá các chủ đề nâng cao hơn như tải tệp, xử lý dữ liệu biểu mẫu và kết hợp tham số đường dẫn với các yêu cầu POST. Bây giờ, bạn nên có một sự hiểu biết vững chắc về cách sử dụng FastAPI để tạo và xử lý các yêu cầu POST.

Hãy nhớ rằng, cho dù bạn đang xây dựng một API đơn giản hay một ứng dụng phức tạp, FastAPI có các công cụ mà bạn cần để thành công. Chúc bạn lập trình vui vẻ!