微服务Feign组件远程调用自定义解码器

Feign远程调用响应结果格式

java 复制代码
public class Result<T> {
    /**
     * 响应码,200为成功
     */
    private Integer code;

    /**
     * 响应信息
     */
    private String message;

    /**
     * 响应的具体对象
     */
    private T data;
}

自定义Feign解码器

java 复制代码
@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;
    }

}
相关推荐
rannn_1114 小时前
【苍穹外卖|Day4】套餐页面开发(新增套餐、分页查询、删除套餐、修改套餐、起售停售)
java·spring boot·后端·学习
jiet_h5 小时前
后端 Verticle 架构实战:用 NeonBeeDeployable 推送一条通知
架构
qq_12498707535 小时前
基于JavaWeb的大学生房屋租赁系统(源码+论文+部署+安装)
java·数据库·人工智能·spring boot·计算机视觉·毕业设计·计算机毕业设计
程序猿追5 小时前
CANN ops-math仓库解读 数学算子的底层支撑与高性能实现
人工智能·架构
短剑重铸之日5 小时前
《设计模式》第十一篇:总结
java·后端·设计模式·总结
芷栀夏5 小时前
从 CANN 开源项目看现代爬虫架构的演进:轻量、智能与统一
人工智能·爬虫·架构·开源·cann
若鱼19195 小时前
SpringBoot4.0新特性-Observability让生产环境更易于观测
java·spring
觉醒大王5 小时前
强女思维:着急,是贪欲外显的相。
java·论文阅读·笔记·深度学习·学习·自然语言处理·学习方法
努力学编程呀(๑•ี_เ•ี๑)5 小时前
【在 IntelliJ IDEA 中切换项目 JDK 版本】
java·开发语言·intellij-idea
程序猿追5 小时前
深度剖析 CANN ops-nn 算子库:架构设计、演进与代码实现逻辑
人工智能·架构