是否存在可从swagger端点生成客户端代码的Maven插件?
适配场景的推荐工具及使用方案
1. OpenAPI Generator
这是当前OpenAPI生态最活跃的代码生成工具,是原Swagger Codegen的社区维护分支,功能迭代、问题修复效率都远高于官方旧版Swagger Codegen,完全支持从swagger导出的OpenAPI 2.0/3.x规范生成Spring生态相关代码,你需要的接口stub、请求/响应Schema类都可以生成,还支持自定义生成规则、代码模板。
可以直接集成到Maven/Gradle构建流程中,无需手动执行命令,Maven配置参考如下:
<plugin> <groupId>org.openapitools</groupId> <artifactId>openapi-generator-maven-plugin</artifactId> <version>7.6.0</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <!-- 替换为你从swagger-ui导出的规范文件路径 --> <inputSpec>${project.basedir}/src/main/resources/third-party-api.yaml</inputSpec> <generatorName>spring</generatorName> <configOptions> <!-- 仅生成接口定义不生成默认实现 --> <interfaceOnly>true</interfaceOnly> <!-- Schema类生成的包路径 --> <modelPackage>com.yourproject.model</modelPackage> <!-- 接口Stub生成的包路径 --> <apiPackage>com.yourproject.api</apiPackage> <!-- 适配你的JDK版本 --> <javaVersion>17</javaVersion> <!-- Spring Boot 3+ 需开启该配置适配Jakarta EE规范 --> <useSpringBoot3>true</useSpringBoot3> </configOptions> </configuration> </execution> </executions> </plugin>
如果仅需要生成Schema类,将interfaceOnly配置替换为<modelsOnly>true</modelsOnly>即可。生成的类会默认带上Jackson序列化注解、JSR校验注解,和Spring生态完全兼容。
2. SpringDoc OpenAPI 生成插件
如果你是Spring Boot项目,也可以选择SpringDoc官方提供的代码生成插件,和Spring框架的适配性更好,对Spring Boot 3、响应式Spring WebFlux的支持更原生,配置逻辑比OpenAPI Generator更简洁,适合不需要过多自定义生成规则的场景。
通用使用流程
- 从对方提供的swagger-ui页面导出OpenAPI规范文件,一般入口为页面上的
/v3/api-docs(OpenAPI 3.x)或/v2/api-docs(Swagger 2.0),下载json或者yaml格式文件存入项目资源目录 - 后续对方更新API规范时,只需替换本地的规范文件重新构建,即可自动更新所有stub和Schema类,不需要手动修改对接代码,大幅降低对接错误率
内容的提问来源于stack exchange,提问作者Ray Hallquist
相关产品推荐
相关产品推荐

