0

当我尝试从包含数组的模型继承时,使用 swagger 编辑器并收到验证错误。我假设我的定义被搞砸了,因为我是新来的。但我确实知道在编辑器中支持 swagger 2.0 仍有工作要做。不想指出编辑器中的错误或缺陷,只想知道我的架构是否有效。

这在编辑器中有效(来自简单的 petstore 示例):

definitions:
  pet:
    properties:
      name:
        type: string
  newPet:
    allOf:
      - $ref: '#/definitions/pet'

但是我想将宠物定义为一个数组:

definitions:
  pet:
    type: array
    items:
      type: string
  newPet:
    allOf:
      - $ref: '#/definitions/pet'
4

2 回答 2

2

从技术上讲,这不是继承,而是组合。newPet和之间没有等级关系pet。对于继承,定义必须都是对象,并且必须有discriminator定义。

就组合而言,这看起来像是一个有效的定义。

于 2015-01-06T20:39:43.167 回答
0

这是一个示例:https ://github.com/OAI/OpenAPI-Specification/blob/master/examples/v2.0/yaml/petstore-expanded.yaml

所以它看起来像这样:

definitions:
  Pet:
    allOf:
      - $ref: '#/definitions/NewPet'
    required:
      - id
    properties:
      id:
        type: integer
        format: int64

  NewPet:
    required:
      - name  
    properties:
      name:
        type: string
      tag:
        type: string
于 2016-10-20T19:27:08.597 回答