1.PathVariable的url客戶端調用示例
1.1controller實現
@Autowired
QueryRemote queryRemote;
@RequestMapping("/query/{name}")
public String query(@PathVariable String name){
return queryRemote.query(name);
}
1.2Feign接口實現
@FeignClient(name="queryRemote", url="${ssp.server.address}")
public interface QueryRemote {
@GetMapping(value="/Eilean-api/query/{name}")
public String query(@PathVariable("name") String name);
}
1.3Web端調用示例
http://localhost:8008/query/Jorge
1.4 調用的鏈路圖
從圖中可以看出,controller的處理過程與feign的處理過程完全是相對的。也即是,controller解析完url並綁定相應的請求參數後,然後在調用的feign的接口方法,重新組裝url發送到相應的remote的url,進而完成服務的反向代理。響應的結果再沿着相反的方向傳遞,把數據返回給請求端。
因此,在controller調用feign接口方法之前可以做複雜的參數映射,包括pathvariable、parameter、body中的參數之間的映射。