[使用Quarkus的反应式REST服务的OpenAPI规范

问题描述 投票:0回答:1

到目前为止的欢乐

我正在尝试使用RESTEasy和JSON-B在official guide之后启动并运行反应性REST服务。我还添加了对OpenAPI的支持,以在this guide之后测试该服务。

这两个部分都可以独立工作,服务会正确返回经过硬编​​码的演示数据。 Swagger UI显示可用的路由并允许调用它们。

但是,它不像我希望的那样光滑...

从简单的非反应性路由中,已正确提取模式:

Fruit:
  type: object
  properties:
    description:
      type: string
    name:
      type: string

但是从反应式路由中,已经提取了空模式。例如,介绍

@GET
@Path("/{name}")
public Uni<Fruit> getOne(@PathParam(value = "name") String name) {
}

导致架构:

UniFruit:
  type: object

是否有办法重用现有的Fruit模式?

我尝试注释该路线,但没有任何效果:

@GET
@Path("/{name}")
// @Schema(ref = "#/components/schemas/Fruit")  // Nope...
// @Schema(ref = "Fruit")                       // Nope...
public Uni<Fruit> getOne(@PathParam(value = "name") String name) {
}

理想情况下,无论如何我都不希望分别注释每个反应式方法。

问题

是否有方法配置整个项目范围在路由返回TUni<T>时使用Multi<T>的模式?

openapi quarkus
1个回答
0
投票

我已经浏览了MicroProfile OpenAPI规范https://github.com/eclipse/microprofile-open-api/blob/master/spec/src/main/asciidoc/microprofile-openapi-spec.adoc,但是找不到一种方法来进行您请求的整个项目范围的架构更改。您可以为给定的类执行此操作,但是此处的类为Uni,并且您希望根据参数化类型使用不同的架构。

因此,除非SmallRye OpenAPI(实现)具有某些特定的方法来执行此操作,否则Quarkus中的修复似乎是可行的方法。

© www.soinside.com 2019 - 2024. All rights reserved.