0

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

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

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

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'

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

非常感谢!

4

2 回答 2

0

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

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

该库是 Quarkus 支持此功能背后的实现。如果您可以包含一个非常有帮助的复制器项目。或者至少给我们一些关于FruitSetFruitjava 类的信息。

于 2020-02-17T18:31:19.627 回答
0

这个问题将在下周发布的 Quarkus 1.3.0.CR1 中得到解决。

于 2020-02-21T18:18:57.463 回答