相关疑难解决方法(0)

如何为`map` 对象中的属性名称编写 OpenAPI 3 (Swagger) 规范?

我试图描述的 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)

产生这样的东西:

API 的 Swagger 渲染

这充分传达了属性中值的描述性,但我如何记录对象中“键”的限制?理想情况下,我想说“这不仅仅是任意字符串,而是与孩子对应的 ID”。这是否以任何方式支持?

swagger swagger-editor openapi

11
推荐指数
1
解决办法
8277
查看次数

标签 统计

openapi ×1

swagger ×1

swagger-editor ×1