限制属性中的openapi类型的正确方法是哪种?

时间:2018-08-11 18:23:16

标签: openapi

到目前为止,我有以下内容:

Links:
  description: Must contain links objects
  type: object
  properties:
    $ref: "#/components/schemas/Link"
ErrorLinks:
  allOf:
    - $ref: "#/components/schemas/Links"
    - properties:
        about:
          $ref: "#/components/schemas/Link"

Links中,我不在乎任何properties的名称是什么,只是它们都是Link对象。我希望在ErrorLinks中有一个about属性,它也是一个Link对象。

这是定义的正确方法吗?还是我在Links中说我希望properties节点本身是Link对象?

我发现openapi文档中缺少一些有用的示例,并且上面的验证有效,所以我不确定。

1 个答案:

答案 0 :(得分:0)

  

Links中,我不在乎任何属性的名称是什么,只是它们都是Link对象。

Links是一个字典(哈希图)。字典是使用additionalProperties定义的,如this answer中所述:

Links:
  description: Must contain links objects
  type: object
  additionalProperties:
    $ref: "#/components/schemas/Link"
  

ErrorLinks中,我希望有一个about属性,它也是一个Link对象。

您快到了。不需要allOf,只需要一个简单的对象模式:

ErrorLinks:
  type: object
  properties:
    about:
      $ref: "#/components/schemas/Link"
  required:
    - about