【问题标题】:Inheritance in swagger-editor throwing an errorswagger-editor 中的继承引发错误
【发布时间】:2016-10-21 03:27:08
【问题描述】:

当我尝试从包含数组的模型继承时,使用 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'

【问题讨论】:

    标签: swagger swagger-editor


    【解决方案1】:

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

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

    【讨论】:

    • 那么如何设置inheritance
    • 该信息现在可在规范本身中获得,包括示例。
    【解决方案2】:

    这里是一个例子: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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      • 1970-01-01
      • 2018-03-08
      • 2015-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多