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

招摇过市与相关对象响应

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

    我正在使用SwaggerHub和OpenAPI 3来定义API。一条路线 GET /foo/{id] ,应返回 foo 给定对象 id ,及其关联 bar {id: 4, name: 'test', bars: [{id: 53, name: 'barName1'}, {id: 87, name: 'barName2'}]} .也就是说,在

    我如何用OpenAPI 3语法描述这一点?我试过用 anyOf

    paths:
      /foo/{id}:
        get:
          parameters:
            - name: id
              in: path
              required: true
              schema:
                type: integer
          responses:
            '200':
              content:
                application/json:
                  schema:
                    type: array
                    items: 
                      $ref: '#/components/schemas/Foo'
                    anyOf:
                      - $ref: '#/components/schemas/Bar'
    

    但这似乎没有在用户界面中显示正确的模式(没有提到 Bar

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

    你不需要 anyOf . 任何 表示另一个选项(“foo或bar”),而您有一个常见的嵌套结构-一个对象 Foo 与财产 bars 这是一系列 Bar S.这可以描述为:

          responses:
            '200':
              description: OK
              content:
                application/json:
                  schema:
                    $ref: '#/components/schemas/Foo'
    
    components:
      schemas:
        Foo:
          type: object
          properties:
            bars:
              type: array
              items:
                $ref: '#/components/schemas/Bar'
          required:
            - bars
        Bar:
          ...