代码之家  ›  专栏  ›  技术社区  ›  GluePear

请参阅OpenAPI 3.0中的Self。

  •  0
  • GluePear  · 技术社区  · 6 年前

    我在OpenAPI 3.0中有一个数据模型定义,使用swaggerhub来显示用户界面。我希望模型的一个属性是 related ,它是同一模型的属性数组。

        Foo:
          properties:
            title:
              type: string
            related:
              type: array
              items: 
                $ref: '#/components/schemas/Foo'
    

    解析器似乎不喜欢这样-用户界面显示 相关 属性为空数组。这种自引用在OpenAPI 3.0中是可能的吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Helen    6 年前

    您的定义是正确的,它只是轻率的用户界面当前没有正确地呈现循环引用的定义。参见 issue #3325 有关详细信息。

    你能做的就是添加一个模型 example ,并且Swagger UI将显示此示例,而不是尝试从定义中生成示例。

        Foo:
          type: object
          properties:
            title:
              type: string
            related:
              type: array
              items: 
                $ref: '#/components/schemas/Foo'
          example:     # <-------
            title: foo
            related:
              - title: bar
              - title: baz
                related:
                  - title: qux
    

    或者,可以添加 例子 只是为了 related 数组:

        Foo:
          type: object
          properties:
            title:
              type: string
            related:
              type: array
              items: 
                $ref: '#/components/schemas/Foo'
              example:   # <--- Make sure "example" is on the same level as "type: array"
                - title: bar
                - title: baz
                  related:
                    - title: qux