我有一个基于this example的Spring Boot服务的简单CRUD API。
API提供以下定义:
@RepositoryRestResource
public interface PersonRepository extends CrudRepository<Person, Long> {}
从curl客户端,我可以使用以下隐式GET
命令获取用户列表:curl localhost:8080/persons
。
从Java的角度来看,我们只称远程等效于Iterable<Person> persons = personRepository.findAll()
。
问题是spring是否可以自动创建相同API 的远程实现(客户端),而无需需要手动键入路径或知道方法类型(如使用RestTemplate
)时需要吗?
此类客户端使用示例:
PersonRepository personRepository = new PersonRepositoryClient(http://localhost:8080");
Iterable<Person> persons = personRepository.findAll(); // findAll does a remote call as if it was local.
我怎样才能找到这样一个客户&#34;生成&#34;实施&#34;
*我知道传递URL直接与服务发现架构相矛盾,但它只是为了理解如何到达定义良好的客户端。通过发现URL而不是手动设置URL,可以在服务发现体系结构中使用同一客户端。
答案 0 :(得分:0)
试试Feign Client。它为您的Java接口提供HTTP请求处理程序的自动生成。要使其工作,您需要包含Spring Cloud,标准Spring框架不具备此功能。