【发布时间】:2020-01-26 16:05:26
【问题描述】:
假设一个 REST API 在资源 /foos 上定义了一个 POST 方法来创建一个新的 Foo。创建 Foo 时,Foo 的名称是一个输入参数(存在于请求正文中)。当服务器创建一个 Foo 时,它会为其分配一个 ID。此 ID 与 REST 响应中的名称一起返回。 我在 OpenAPI 中寻找类似于 readOnly 的东西。
输入的 JSON 应该如下所示:
{
"name": "bar"
}
输出的 JSON 应该是这样的:
{
"id": 123,
"name": "bar"
}
有没有办法重用相同的 pydantic 模型?还是需要使用两个不同的模型?
class FooIn(BaseModel):
name: str
class Foo(BaseModel):
id: int
name: str
我在 pydantic 文档或 Field 类代码中找不到任何提及“只读”、“只读”或“只读”的内容。
谷歌搜索我发现一个帖子提到
id: int = Schema(..., readonly=True)
但这似乎对我的用例没有影响。
【问题讨论】:
标签: python python-3.x rest fastapi pydantic