跳转至

FastAPI路径操作配置

FastAPI 路径操作配置允许开发者详细定义和管理 API 端点的行为和特性。通过配置路径操作,可以设置响应状态码、添加描述、标签、示例等信息,从而提高 API 的可读性和可维护性。以下是对 FastAPI 路径操作配置的详细介绍。

1. 路径操作配置

FastAPI 提供了多种路径操作配置选项,如设置响应状态码、添加描述、标签等。

1.1 配置响应状态码

可以通过 status_code 参数来设置路径操作的默认响应状态码。

from fastapi import FastAPI, status

app = FastAPI()

@app.post("/items/", status_code=status.HTTP_201_CREATED)
async def create_item(item: Item):
    return item

在上述例子中,POST 请求成功时将返回状态码 201 Created

1.2 添加描述和摘要

可以通过 summarydescription 参数来添加路径操作的摘要和详细描述。

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/",
    response_model=Item,
    summary="Create an item",
    description="Create an item with all the information, name, description, price, and tax",
)
async def create_item(item: Item):
    return item

在上述例子中,路径操作的摘要和详细描述将显示在自动生成的 API 文档中。

1.3 添加响应描述

可以通过 response_description 参数来添加响应的描述信息。

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/",
    response_model=Item,
    summary="Create an item",
    description="Create an item with all the information, name, description, price, and tax",
    response_description="The created item",
)
async def create_item(item: Item):
    return item

1.4 添加标签

可以通过 tags 参数为路径操作添加标签。标签在自动生成的 API 文档中用于对路径操作进行分类。

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/",
    response_model=Item,
    summary="Create an item",
    description="Create an item with all the information, name, description, price, and tax",
    response_description="The created item",
    tags=["items"]
)
async def create_item(item: Item):
    return item

1.5 添加示例

可以通过 examples 参数为路径操作添加请求和响应的示例。

from fastapi import FastAPI, Body
from pydantic import BaseModel

app = FastAPI()

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

@app.post(
    "/items/",
    response_model=Item,
    summary="Create an item",
    description="Create an item with all the information, name, description, price, and tax",
    response_description="The created item",
    tags=["items"],
    response_model_exclude_unset=True,
)
async def create_item(
    item: Item = Body(
        ...,
        examples={
            "normal": {
                "summary": "A normal example",
                "description": "A **normal** item works correctly.",
                "value": {
                    "name": "Foo",
                    "description": "A very nice Item",
                    "price": 35.4,
                    "tax": 3.2,
                },
            },
            "converted": {
                "summary": "An example with converted data",
                "description": "FastAPI can convert price strings to actual numbers automatically",
                "value": {
                    "name": "Bar",
                    "price": "35.4",
                },
            },
            "invalid": {
                "summary": "Invalid data is rejected with an error",
                "value": {
                    "name": "Baz",
                    "price": "thirty five point four",
                },
            },
        },
    )
):
    return item

在上述例子中,使用 examples 参数为请求体 item 提供了多个示例,这些示例将显示在 API 文档中,帮助用户理解如何正确使用该端点。

2. 总结

FastAPI 提供了丰富的路径操作配置选项,使开发者可以详细定义 API 端点的行为和特性。通过配置响应状态码、添加描述、标签、示例等信息,可以提高 API 的可读性和可维护性。此外,FastAPI 还支持在路径操作函数中返回自定义的响应,包括自定义状态码和响应头。通过灵活的路径操作配置,开发者可以构建出功能强大且用户友好的 API。

评论