swagger 3:字典词典架构

时间:2018-02-05 14:27:46

标签: swagger swagger-editor openapi

我想模拟一个模式,其中response是字典词典:

{
  'id1': {
    'type': 'type1',
    'active': true,
  }, 
  'id2': {
    'type': 'type2',
    'active': false,
  },
  ... 
  ... 
}

我定义了:

components:
  schemas:
    accountData:
      type: object
      required:
        - type
        - active
      properties:
        type:
          type: string
        active:
          type: boolean

    accounts:
      type: object
      additionalProperties:
        type: object
        properties:
          account-id:
            type: object
            $ref: '#/components/schemas/accountData'

现在我要定义'#/ components / schemas / accounts',它是'#/ components / schemas / account'的重复字典。

我是OpenApi 3的新手,我无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:1)

你快到了。 additonalProperties中指定的模式对应于<key, value>字典中的值类型。在您的示例中,值为accountData个对象,因此您应该使用:

components:
  schemas:
    ...

    accounts:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/accountData'