Feign远程调用响应结果格式
public class Result<T> {
/**
* 响应码,200为成功
*/
private Integer code;
/**
* 响应信息
*/
private String message;
/**
* 响应的具体对象
*/
private T data;
}
自定义Feign解码器
@Component // 注入Spring的IOC容器中,所有的Feign远程调用响应生效
public class FeignResultDecoder implements Decoder {
@Override
public Object decode(Response response, Type type) throws IOException, DecodeException, FeignException {
if (response.body() == null) {
throw new DecodeException(response.status(), "未返回正确的数据", response.request());
}
String bodyStr = Util.toString(response.body().asReader(Util.UTF_8));
// TODO 进行转换(jackson提供json2obj方法实现Result转换)
Result result = (Result) JsonUtil.json2obj(bodyStr, type);
// TODO 最终响应结果为Result中的泛型对象
return result.data;
}
}
文章来源地址https://www.toymoban.com/news/detail-671896.html
文章来源:https://www.toymoban.com/news/detail-671896.html
到了这里,关于微服务Feign组件远程调用自定义解码器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!