由网友(魂牽夢回)分享简介:假设有一个rest API,它在资源/foos上定义了一个POST方法来创建一个新的foo。在创建foo时,foo的名称是一个输入参数(出现在请求正文中)。当服务器创建foo时,它会为其分配一个ID。该ID与REST响应中的名称一起返回。我正在寻找与OpenAPI中的ReadOnly类似的东西。输入JSON应如下所示...![听说这几个Python库超强](https://p.xsw88.cn/allimgs/daicuo/20230903/3173.png)
假设有一个rest API,它在资源/foos上定义了一个POST方法来创建一个新的foo。在创建foo时,foo的名称是一个输入参数(出现在请求正文中)。当服务器创建foo时,它会为其分配一个ID。该ID与REST响应中的名称一起返回。 我正在寻找与OpenAPI中的ReadOnly类似的东西。
输入JSON应如下所示:
{
"name": "bar"
}
![听说这几个Python库超强](https://p.xsw88.cn/allimgs/daicuo/20230903/3173.png)
输出JSON应如下所示:
{
"id": 123,
"name": "bar"
}
有没有办法重用相同的PUDING模型?还是有必要使用两个不同的模型?
class FooIn(BaseModel):
name: str
class Foo(BaseModel):
id: int
name: str
我找不到任何有关"Read Only"、"Read-Only"或"Read Only"的内容,请注意,请注意请注意。
我在谷歌上找到一篇帖子,其中提到
id: int = Schema(..., readonly=True)
但这似乎对我的用例没有影响。
推荐答案
拥有多个型号很好。您可以使用继承来减少代码重复:
from pydantic import BaseModel
# Properties to receive via API create/update
class Foo(BaseModel):
name: str
# Properties to return via API
class FooDB(Foo):
id: int
documentation是非常好的btw!,对此进行了更深入的探讨。
Here是取自官方的全栈项目生成器的真实用户模型示例。您可以看到如何根据上下文使用多个模型来定义用户架构。
相关推荐
最新文章