虽然可能有更好的方式来表达这个问题,但这个想法非常简单。
我有两节课。包裹和包裹请求。ParcelRequest 在 API 中用于请求具有给定参数的 Parcel 的信息,并且
实际上,ParcelRequest 需要与 Parcel 相同的所有参数,但需要一个quantity
附加值。
from pydantic import BaseModel
class Parcel(BaseModel):
length: float
width: float
height: float
weight: float
class ParcelRequest(BaseModel):
length: float
width: float
height: float
weight: float
quantity: int
每当 Parcel 被修改时,有没有办法让 Parcel 和 ParcelRequest “同步”?
from pydantic import BaseModel
class Parcel(BaseModel):
length: float
width: float
height: float
weight: float
class ParcelRequest(BaseModel):
# unpack Parcel attributes here
quantity: int
注意:在此特定示例中,我们无法更改传入请求的结构。这意味着,我们不能简单地在 ParcelRequest 中包含一个引用 Parcel 对象的“parcel”属性,因为它会改变请求的结构。
问题是这是否可以做到。但作为奖励,应该这样做吗?我的信念是,虽然 API 会随着 Parcel 的发展而与它保持同步,但开发人员可能会通过更新 Parcel 无意中破坏 API,除非经过仔细处理并且没有进行适当的测试。