当前位置: 首页 > 知识库问答 >
问题:

如何从源头为Spring Boot微服务生成rest客户端api?

李招
2023-03-14

是否有一种方法可以配置Spring Boot应用程序来为它生成(例如,通过gradle任务)一个带有rest客户机的JAR文件?

我听说过Swagger和springdoc、springfox等库,但它们在应用程序启动时会生成web api。我希望通过使用CI/CD而不是手工工作来管理rest api客户机,自动化Kubernetes集群内微服务之间的通信过程。

共有1个答案

步博涉
2023-03-14

你试过OpenFeign吗?在SpringMVC中,我们可以使用SpringMVC的@requestmapping和其他注释为这些注释所指向的API生成客户机。请参阅这里的文档。

现在,既然您希望这是自动化的,您可以尝试以下方法:

  • 编写一个批注处理器,它可以处理@controller或您使用的任何一种类型。
  • 此处理器将生成SpringBoot需要的接口作为虚假配置
  • 处理器将使用相同的注释生成与controller类完全相同的方法(您可能需要向SpringMVC注释添加/删除一些参数
  • 这应该作为一个分级annotationprocessordependency
  • 给出
 类似资料:
  • 如何使用JAX-RS Client Fluent API为外部世界REST服务创建rest客户端? 例如,假设一个服务返回一个person对象,该对象有两个字段名和年龄。 无论我遇到什么样的例子/教程,他们做同样的事情,下面的片段或他们开发客户端在同一个项目,以取代tring.classperson.class.我应该如何创建独立的客户端,将返回我pojo的人。

  • Lazy 微服务客户端 Sometimes you have to load initial data before you can create your @Client(). In this case, you can use ClientProxyFactory, which provides create() method. 有时候在创建@Client()之前你需要加载原始数据。这时,你可

  • 问题内容: 我正在尝试使用CXF创建Web服务客户端以使用WCF Web服务。当我使用wsdl2java时,它将生成具有JAXBElement类型而不是String的对象。 我读到有关使用jaxb bindings.xml文件设置generateElementProperty =“ false”来尝试解决此问题的信息,但是我使用的Web服务包含7个导入的架构。 如何在所有七个模式上指定,还是可以将

  • 我有一个包含10个微服务的微服务架构,每个微服务提供一个客户端。在由微服务团队管理/控制的客户机内部,我们只接收参数并将它们传递给一个通用http调用程序,该调用程序接收endpoint和N个params,然后进行调用。所有微服务都使用http和web api(我猜技术并不重要)。 对于我来说,作为微服务团队提供一个客户是没有意义的,应该是消费者的责任,如果他们想创建一些抽象或者直接调用它是他们的

  • 脚本 我正在使用微服务构建快递服务系统。我不确定一些事情,这是我的场景 预订API-这是客户下订单的地方 付款API-这是我们处理预订付款的地方 通知API-有服务负责在一切完成后发送通知。 系统采用事件驱动架构。当客户下预订订单时,我在预订应用编程接口中提交本地交易并发布事件。支付应用编程接口和通知应用编程接口订阅了各自的事件。一旦完成,支付和通知应用编程接口需要向预订应用编程接口确认。 我的问

  • 我的设想如下。 我有一个swagger. json,例如:http://petstore.swagger.io/v2/swagger.json我想为上面的REST API使用生成的java客户端,例如: 扩展输出:<code>cica</code>,新宠物根据REST API实现进行存储。 我已经使用以下命令成功地为petstore生成了服务器存根: 但是这个 maven 项目代码是一个服务器代码