如何避免OpenAPI代码生成器为Spring WebFlux接口包裹Mono请求体
解决OpenAPI生成WebFlux接口时请求体被Mono包裹的问题
要让OpenAPI Generator生成的接口直接使用实体类作为请求体参数,同时移除多余的ServerWebExchange参数,只需调整Maven插件的配置选项:
修改pom.xml中的OpenAPI Generator插件配置
在openapi-generator-maven-plugin的configOptions里添加两个参数:
<configOptions> <interfaceOnly>true</interfaceOnly> <skipDefaultInterface>true</skipDefaultInterface> <reactive>true</reactive> <!-- 新增以下两个配置 --> <useReactiveRequestType>false</useReactiveRequestType> <disableServerWebExchange>true</disableServerWebExchange> </configOptions>
参数说明:
useReactiveRequestType=false:禁用请求体的响应式包装,让生成的接口直接接收实体类参数,而非Mono<实体类>disableServerWebExchange=true:自动移除接口方法中的ServerWebExchange参数
修改后生成的接口效果
重新执行mvn clean generate-sources后,生成的createPost接口会变成你期望的格式:
public Mono<ResponseEntity<PostApiDto>> createPost(PostApiDto body) { }
补充说明
保持reactive=true的配置,确保接口返回值依然是响应式类型(Mono<ResponseEntity<...>>),符合WebFlux的开发模式。
内容的提问来源于stack exchange,提问作者Abdelrahman_Attya
相关产品推荐
相关产品推荐

