跳转至

请求体

请求体通常用于 “创建” 和 “更新” 操作(POST、PUT、PATCH)。 例如,当使用 POST 或 PUT 创建资源时,请求主体通常包含要创建的资源的表示。

要创建一个 request body, 你需要使用 Django Ninja Schema 或任何适合你需求的 Pydantic 模式。

我推荐 Ninja-Schema

创建你的数据模型

然后你将你的数据模型声明为一个继承自 Schema 的类。

对所有属性使用标准的 Python 类型:

from ninja import Schema, constants
from ninja_extra import api_controller, route


class Item(Schema):
    name: str
    description: str = None
    price: float
    quantity: int


@api_controller(tags=['My Operations'], auth=constants.NOT_SET, permissions=[])
class MyAPIController:
    @route.post("/items")
    def create(self, item: Item):
        return item

注意: 如果你使用 None 作为一个属性的默认值,它在请求主体中将变为可选的。 例如,上面的这个模型声明了一个类似的 JSON "对象" (或 Python 字典):

{
    "name": "Katana",
    "description": "An optional description",
    "price": 299.00,
    "quantity": 10
}

...因为 description 是可选的 (默认值为 None), 所以这个 JSON "对象" 也将是有效的:

{
    "name": "Katana",
    "price": 299.00,
    "quantity": 10
}

评论


本文总阅读量