Feign調用過程和調用示例

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中的參數之間的映射。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章