@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/json Accept:application/json POST 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();
}