Spring 与 Feign 的集成支持使用 Spring MVC 注释来映射 Feign 接口:
@FeignClient("multiplier")
public interface MultiplierApi {
@GetMapping("/multiply")
public Long multiply(@RequestParam("one") long one, @RequestParam("two") long two);
}
我可以将MultiplierApi
接口放入 API 包中,并在客户端程序中使用它@EnableFeignClients
并作为我的控制器的实现接口:
@RestController
public class MultiplierController implements MultiplierApi {
public Long multiply(long one, long two) {
return one * two;
}
}
这似乎允许我删除控制器和客户端接口之间可能发生的重复,从而减少映射不同步的可能性。以这种方式共享 API 定义有什么缺点吗?