TL; DR:为每个REST Spring Controller自动生成HTTP客户端,以便在Spring编写的其他服务中重用。为Spring Controller自动生成客户端
当使用Spring编写的多个微服务时,我发现自己正在为每个控制器重写客户端。可以说,我写在服务X控制器:
@RestController
public class SubscriptionController {
@Autowired
private SubscriptionService subscriptionService;
@RequestMapping(value = "/subscription", method = RequestMethod.GET)
public SubscriptionDTO getMySubscription() {
return subscriptionService.getCurrentUserSubscription();
}
}
我将导入的DTO在服务Y,写HTTP请求中的其他服务定义的映射,并为它编写测试。
@Service
public class SubscriptionApiService {
@Autowired
private HttpClient httpClinet;
public SubscriptionDTO getMySubscription() {
return httpClient.get("/subscription", SubscriptionDTO.class);
}
}
这是一个非常重复的过程,我很确定有人已经编写了一个库来实现这个过程的自动化。但是我找不到那样的东西。任何想法?
Swagger有一个http客户端生成器。你应该检查它 – nowszy94