【问题标题】:How to generate rest client api for Spring Boot microservice from source?如何从源代码为 Spring Boot 微服务生成 rest 客户端 api?
【发布时间】:2022-01-07 20:56:57
【问题描述】:
有没有办法配置 Spring Boot 应用程序以生成(例如,通过 gradle 任务)带有 rest 客户端的 jar 文件?
我听说过 Swagger 和 springdoc、springfox 等库,但它们会在应用程序启动时生成 web api。我想自动化 Kubernetes 集群内的微服务之间的通信过程,用 CI/CD 管理 rest api 客户端而不是手动工作。
【问题讨论】:
标签:
java
spring-boot
rest
microservices
code-generation
【解决方案1】:
你试过 OpenFeign 吗?在 SpringMVC 中,我们可以使用 SpringMVC 的@RequestMapping 和其他注解来生成这些注解所指向的 API 的客户端。请参考the documentation here。
现在,既然您希望它自动化,您可以试试这个:
- 编写一个注释处理器,可以处理
@Controller 或您正在使用的任何风格。
- 这个处理器会生成SpringBoot需要的接口作为Feign配置
- 处理器将生成与具有相同注释的控制器类中完全相同的方法(您可能需要在 SpringMVC 注释中添加/删除一些参数)
- 这应该作为 Gradle
annotationProcessor 依赖项提供
当然,现在你的SpringBoot应用需要@EnableFeignClients和对应的依赖。
希望这对你有用。