@Controller内的返回值是和配置的视图解析器InternalResourceViewResolver挂钩的;
我们使用feign是为了获去数据并不需要什么视图,所以一定不要忘记在方法上加@ResponseBody注解
示例:
@FeignClient(
name = "card",
url = "http://localhost:7913",
)
@RequestMapping(value = "/v1/card")
public interface CardFeignClient {
@RequestMapping(value = "/balance", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
Info info();
}
如果 @RequestMapping注解被用在FeignClient类上,当像如下代码请求/v1/card/balance时,注意有Accept header
|
1
2
3
4
|
Content-Type:application/jsonAccept:application/jsonPOST http://localhost:7913/v1/card/balance |
那么会返回 404。
如果不包含Accept header时请求,则是OK:
public interface CardFeignClient { @RequestMapping(value = "/v1/card/balance", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) Info info();}