当前位置: 首页 > 知识库问答 >
问题:

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

劳研
2023-03-14

我试图按照官方指南,使用RESTEasy和JSON-B来启动和运行一个反应性的REST服务。我还添加了对OpenAPI的支持,以测试遵循本指南的服务。

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

然而,它并不像我喜欢的那样顺利...

从简单的、无反应的路由中,模式被正确地提取出来:

Fruit:
  type: object
  properties:
    description:
      type: string
    name:
      type: string
java prettyprint-override">@GET
@Path("/{name}")
public Uni<Fruit> getOne(@PathParam(value = "name") String name) {
}
UniFruit:
  type: object
@GET
@Path("/{name}")
// @Schema(ref = "#/components/schemas/Fruit")  // Nope...
// @Schema(ref = "Fruit")                       // Nope...
public Uni<Fruit> getOne(@PathParam(value = "name") String name) {
}

理想情况下,我不想单独注释每个反应方法。

是否有一种方法可以在项目范围内配置,以便每当路由返回uni multi 时使用t架构?

共有1个答案

苍意智
2023-03-14

我浏览了微配置文件OpenAPI规范https://github.com/eclipse/microprofile-open-api/blob/master/spec/src/main/asciidoc/microprofile-openapi-spec.adoc,但找不到一种方法来完成您所请求的项目范围的模式更改。您可以为给定的类执行此操作,但在这里该类是uni,并且根据参数化类型需要不同的模式

因此,Quarkus中的修复似乎是可行的方法,除非SmallRye OpenAPI(实现)有一些特定的方法来做到这一点。

 类似资料:
  • 最近,我使用回调结构实现了一个带有Quarkus/Multiny的反应式REST GETendpoint; 使用 Quarkus/Mutiny 将 MyRequestService 连接到 Reactive REST GET endpoint 完成后,我想知道如何通过调用阻止服务来解决这个问题; 我如何用quar kus/哗变从我的反应式REST GETendpoint调用阻塞服务

  • 在使用回调结构和Quarkus/Mutiny实现反应式REST GETendpoint并使用阻塞服务检查变量后,我最终使用CompletionStage/CompletableFuture API版本进行了播放; 如何从我的Reactive REST GETendpoint调用CompletionLevel/CompletableFuture API服务

  • 在一节中,引入了接口,允许在请求中注入头,但必须返回同步响应。我们不能使用,这正是我的情况所需要的,因为我需要在头中添加一个令牌,而这个令牌是由返回的另一个restendpoint的请求检索的。 我如何在新的实现中实现这一点?如果不可能,有没有解决办法?

  • 我需要将基于soap的应用程序转换为基于rest的quarkus应用程序。 我需要一个quarkusRest服务采取以下请求和产生响应。

  • 我正在使用quarkus版本,需要知道如何处理未知endpoint。当我试图命中尚未实现的endpoint时,它只会发送,而不是我希望实现的异常。我无法找到相同的实现。有人能帮我做这个吗?

  • 我的项目需求是使用SOAP服务,为此我尝试使用Quarkus。我会用什么Quarkusdependecies来解决这个问题?有什么示例应用程序我可以参考吗? 在Spring中,我们可以使用org.springframework.ws.client.core.support.webserviceGateWaysupport在Quarkus中有类似的东西吗。