Openapi YAML错误,无法生成客户端存根

时间:2020-02-17 13:43:50

标签: quarkus smallrye

我正在将Quarkus评估为后端,可以通过有角度的前端进行访问。 我想使用Quarkus通过http://localhost:8080/openapi提供的openapi数据, 并通过openapi-generator工具生成一个Typescript-角度客户端存根。

我首先使用了Quarkus Openapi指南:https://quarkus.io/guides/openapi-swaggerui 但是在运行完未修改的示例并通过http://localhost:8080/openapi检索Openapi YAML数据后,我注意到生成的数据是错误的,并且由于stackoverflow错误,openapi生成器无法生成客户端。

问题:Openapi数据中对SetFruit-Definition的自引用(最后一行):

openapi: 3.0.1
info:
  title: Generated API
  version: "1.0"
paths:
  /fruits:
    get:
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetFruit'
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Fruit'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetFruit'
    delete:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Fruit'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetFruit'
components:
  schemas:
    Fruit:
      type: object
      properties:
        description:
          type: string
        name:
          type: string
    SetFruit:
      $ref: '#/components/schemas/SetFruit'

这是一个已知问题,还是我这边有些误解。 有没有解决此问题的方法?

非常感谢!

2 个答案:

答案 0 :(得分:0)

它绝对不应该生成自引用定义!您能否在这里提出一个问题:

https://github.com/smallrye/smallrye-open-api/issues

该库是Quarkus支持此功能的实现。如果您可以包括一个复制项目,那将非常有帮助。或者至少给我们一些关于FruitSetFruit Java类的信息。

答案 1 :(得分:0)

此问题将在下周发布的Quarkus 1.3.0.CR1中解决。