我试图描述的 API 有一个结构,其中根对象可以包含任意数量的子对象(属性本身就是对象)。“键”或根对象中的属性是子对象的唯一标识符,值是子对象的其余数据。
{
"child1": { ... bunch of stuff ... },
"child2": { ... bunch of stuff ... },
...
}
Run Code Online (Sandbox Code Playgroud)
这可以类似地建模为数组,例如:
[
{ "id": "child1", ... bunch of stuff ... },
{ "id": "child2", ... bunch of stuff ... },
...
]
Run Code Online (Sandbox Code Playgroud)
但这既使识别属性在结构上变得不太清楚,并使子代 ID 之间的唯一性隐式而非显式,因此我们想要使用对象或映射。
我已经看过Model with Map/Dictionary Properties的 Swagger 文档,但这并不完全适合我的用例。写一些类似的东西:
"Parent": {
"additionalProperties": {
"$ref": "#/components/schemas/Child",
}
Run Code Online (Sandbox Code Playgroud)
产生这样的东西:
这充分传达了属性中值的描述性,但我如何记录对象中“键”的限制?理想情况下,我想说“这不仅仅是任意字符串,而是与孩子对应的 ID”。这是否以任何方式支持?