swagger 3:字典的模式

swagger 3: schema for dictionary of dictionaries

我想建模一个模式,其中响应是字典的字典:

{
  '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 的新手,我不知道该怎么做。

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

components:
  schemas:
    ...

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