Feign获取数据

如果要访问的接口返回的是基本数据类型或者是String这种,而feign接口这边用Object类型来接受,那么会报接受失败,因为feign其实还是从响应体中找到json数据,再根据接口的返回类型进行转换,如果是String,json格式没办法

按照对象的格式读取,所以会报错,所以尽量用对象传。

比如如果接口返回的对象比如是User,feign这边接受的也是User,那么就直接转成User,但是如果feign用父类Object接收,那么会把返回数据转换成LinkedHashMap+ArrayList的组合而不是粗略的Object类型。

但是问题是:一般的api接口都会用自定义的code、data、message封装一下,那么feign访问的时候,得到其中的data会是LinkedHashMap+ArrayList的组合,这样就不能利用feign的decoder帮我们直接转了。

只能自己利用反射转,反射虽然稍微慢一点点,但是基本可以忽略。

其实feign自己帮我们转,也是反射,只不过看到我们的data是个Object,就不转了,所以总体的效率不会有差别。

猜你喜欢

转载自www.cnblogs.com/chuliang/p/11924571.html