我正在为 gradle 使用 openapi-generator。
配置:
task generateSalesOffersApi(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){
generatorName = "spring"
inputSpec = "${projectDir}/src/main/resources/my-contract.yaml".toString()
outputDir = "${buildDir}/generated".toString()
additionalProperties = [
interfaceOnly: 'true',
reactive: 'true',
skipDefaultInterface: "true",
implicitHeaders: "true",
]
configOptions = [
dateLibrary: 'java8',
swaggerDocketConfig: "true",
useTags: 'false',
apiPackage: 'com.data.api',
modelPackage: 'com.data.model',
]
systemProperties = [
apis: "",
models: "",
hideGenerationTimestamp: "true"
]
模型按预期生成。大部分也是 API 部分。
但是如何摆脱 ResponseEntity 包装和 ServerWebExchange 作为生成接口(interface)中的方法参数。
实际:
Mono<ResponseEntity<MyPojo>> getMyPojo(@ApiParam(value = "Param 1",required=true) @PathVariable("param1") String param1, ServerWebExchange exchange);
预期:
Mono<MyPojo> getMyPojo(@ApiParam(value = "Param 1",required=true) @PathVariable("param1") String param1);
我尝试使用 java 生成器,您可以在其中将库设置为 webclient,但不幸的是,这对我来说缺少很多配置,并且生成了许多不必要的类。
最佳答案
您需要将 reactive
设置为 false
:
https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/spring.md
reactive
wrap responses in Mono/Flux Reactor types (spring-boot only)
关于java - 带有 spring-boot 的 openapi-generator,删除生成的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60849109/