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

openapi生成器maven插件不为库webclient生成响应头

章稳
2023-03-14

我在openapi v.3规范中有一个模型。我使用openapi生成器maven插件为库webclient(spring 5-webflux)生成java客户端。我想发送回客户端文件和http头。生成的代码没有获取响应标头的方法。

为客户端生成的代码不包含提供对响应头访问的代码。例如,如果我使用库resttemplate,则有一个方法public MultiValueMap getResponseHeaders()。有没有办法通过library-webclient获取响应头?

rest模板库的模板包含:私有MultiValueMap响应头;链接:github

webclient的代码位于此处:github

共有1个答案

邵飞宇
2023-03-14

OpenAPI生成器从5.2开始扩展,现在webclient库为每个endpoint提供了两种方法,一种是后缀为HttpInfo的方法,另一种是返回类型为Mono的方法

Mono<UserDTO> getUser();

Mono<ResponseEntity<UserDTO>> getUserWithHttpInfo();

然后您可以使用SusHttpInfo调用一个方法,该方法返回响应实体并调用响应实体#getHeaders

getUserWithHttpInfo().getHeaders()
 类似资料:
  • 我们有一个openapi文件(已验证),用于声明响应头,例如。 使用openapi生成器项目(maven或cli)生成的java webclient客户端,调用的返回类型不包括响应头,ApiClient类中的invokeAPI方法也不允许访问响应头。实际上,ApiClient invoke方法返回的是返回类型的Mono/Flux,因此不允许获取响应头 据我所知,使用Spring Webclient

  • 我从一个openapi规范(3.0.1)设计开始,用openapi生成器maven-plugin(5.1.0)生成代码,然后我使用springdoc-openapi-ui进行Spring引导(2.5.4)。 我需要手动将生成的代码中的大部分注释从io.swagger.annotations.*迁移到io.swagger.v3.oas.annotations.*https://springdoc.o

  • 我试图在使用openapi 3规范设计的API中引入可为null的属性。其思想是始终将属性返回给客户端,无论其值是否为null。 YAML文件(我先尝试了,没有默认,结果相同): 生成Java代码: API的响应: 因此,无论属性是否为null,结果总是“present:true”。如果没有nullability,它就可以正常工作,除了从响应中删除不需要的null值。 有什么想法吗? P、 该物业

  • 不幸的是,SpringFox还不支持OpenAPI3,而且,当我只想将最初的yaml公开为JSON时,使用基于反射的生成器似乎毫无意义。

  • 我只是将代码从swagger代码生成器迁移到open api代码生成器。我通过maven插件使用生成器。我需要它为一个外部API(在我的控制之外)生成一个客户端,这里给出了使用的swagger文件。 我的插件设置如下: 为了有一个最小的例子,我把昂首阔步的来源去掉了: 当生成器运行正常时,代码无效 结果列表«GenericRow»完全错误。 另一方面,类的名称是正确生成的只有变量名称处理错误。 如

  • 我正在用OpenAPI生成器maven插件(版本为5.4.0)生成OpenAPI合同的源代码。 我正在使用java生成器和webclient库。 我有一个endpoint响应或: 问题是插件只是考虑第一个媒体类型(按声明顺序)来生成相应的java返回类型。 在上面的例子中,我必须处理字节[]。 如果我首先反转媒体类型(