openapi-generator-maven-plugin使用allOf时无法从OpenAPI规范正确生成代码的问题求助
openapi-generator-maven-plugin使用allOf时无法从OpenAPI规范正确生成代码的问题求助
我在Spring Boot 3.3.4项目中使用openapi-generator-maven-plugin 7.9.0,遇到了代码生成不符合预期的问题,想请教一下有没有人碰到过类似情况,或者有解决思路?
我的OpenAPI规范片段如下:
/scripts/search: post: operationId: getScriptByFilter requestBody: description: JSON Request Data content: application/json: schema: allOf: - $ref: "#/components/schemas/ScriptSearchRequest" - $ref: "HttpServletRequest"
对应的pom.xml插件配置是这样的:
<plugin> <groupId>org.openapitools</groupId> <artifactId>openapi-generator-maven-plugin</artifactId> <version>${openapi.generator.maven.plugin}</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <inputSpec>${project.basedir}/api-spec/ApiSpec.yaml</inputSpec> <generatorName>spring</generatorName> <output>${project.build.directory}/generated-sources/</output> <generateSupportingFiles>false</generateSupportingFiles> <apiPackage>${default.package}.api</apiPackage> <modelPackage>${default.package}.models</modelPackage> <configOptions> <skipDefaultInterface>true</skipDefaultInterface> <interfaceOnly>true</interfaceOnly> <useSpringBoot3>true</useSpringBoot3> <schemaInheritanceSupport>true</schemaInheritanceSupport> <modelInheritance>true</modelInheritance> </configOptions> <openapiNormalizer>REF_AS_PARENT_IN_ALLOF=true</openapiNormalizer> <importMappings> <importMapping>HttpServletRequest=jakarta.servlet.http.HttpServletRequest</importMapping> </importMappings> </configuration> </execution> </executions> </plugin>
现在生成的Java接口代码不符合预期,生成的方法签名是这样的:
ResponseEntity<> getScriptByFilter( @Parameter(name = "GetScriptByFilterRequest", description = "JSON Request Data", required = true) @Valid @RequestBody GetScriptByFilterRequest getScriptByFilterRequest );
我原本期望allOf能正确处理ScriptSearchRequest和HttpServletRequest的组合,但目前生成的代码不仅泛型参数为空,而且只生成了一个自动命名的GetScriptByFilterRequest类作为请求体,完全没体现出和HttpServletRequest的关联。有没有人知道怎么调整配置或者规范写法,让生成的代码符合预期?
备注:内容来源于stack exchange,提问作者voidMainReturn
相关产品推荐
相关产品推荐

