什么是 Body? `从 fastapi 导入 Body`

What is Body? `from fastapi import Body`

documentation 和其他地方我看到 Body 使用但不知道它是什么。

谁能解释一下这三个选项是什么意思?

from fastapi import Body
from pydantic import BaseModel

class MyModel(BaseModel):
    body1: None
    body2: Body(None)
    body3: Body(...)

当您使用 Pydantic 模型时,您不需要使用 Body

你可以这样写:

from pydantic import BaseModel, Schema

class MyModel(BaseModel):
    body1: None
    body2: Schema(None)
    body3: Schema(...)

Body 仅在 路径操作 参数中使用,当您需要强制 FastAPI 理解该参数作为 body 的一部分接收时(例如,而不是查询参数)。在使用 "singular" 类型(单个值,如 intstr)的参数时,您只需要显式使用 Body。如果您使用 Pydantic 模型、列表或类似类型的东西,则不需要显式使用 Body

如果需要,您还可以使用 Body 添加额外的元数据。如标题、示例等

在文档中阅读更多相关信息:https://fastapi.tiangolo.com/tutorial/body/