GET請求多參數的URL
假設我們請求的URL包含多個參數,例如http://microservice-PRovider-user/get?id=1&username=張三 ,要怎么辦呢?
正確寫法如下:
(1) 方法一
@FeignClient(name = "microservice-provider-user")public interface UserFeignClient { @RequestMapping(value = "/get", method = RequestMethod.GET) public User get1(@RequestParam("id") Long id, @RequestParam("username") String username);}這是最為直觀的方式,URL有幾個參數,Feign接口中的方法就有幾個參數。使用@RequestParam注解指定請求的參數是什么。
(2) 方法二
@FeignClient(name = "microservice-provider-user")public interface UserFeignClient { @RequestMapping(value = "/get", method = RequestMethod.GET) public User get2(@RequestParam Map<String, Object> map);}多參數的URL也可以使用Map去構建。當目標URL參數非常多的時候,可使用這種方式簡化Feign接口的編寫。
POST請求包含多個參數
下面我們來討論如何使用Feign構造包含多個參數的POST請求。舉個例子,假設我們的用戶微服務的Controller是這樣編寫的:
@RestControllerpublic class UserController { @PostMapping("/post") public User post(@RequestBody User user) { ... }}我們的Feign接口要如何編寫呢?答案非常簡單,示例:
@FeignClient(name = "microservice-provider-user")public interface UserFeignClient { @RequestMapping(value = "/post", method = RequestMethod.POST) public User post(@RequestBody User user);}新聞熱點
疑難解答