
比如下面这个算是很常见的了
{ "code":200, "msg":"success", "data":[ { "id":1, "name":"jack" }, { "id":2, "name":"rose" } ] } 按照resttemplate map response to pojo关键字搜了半天居然没找到合适的方案
现在就想知道,针对这种返回体,使用 postEntity 或者 postObject 方法,resttemplate 有没有一些更优雅的处理方式?
1 chendy 2022 年 8 月 8 日 个人经验 1. RestTemplate 拿 String 2. 自己做转换,这样如果遇到解析出错的情况,可以把原始 json 字符串打日志出来,方便排查 因为 RestTemplate 默认是用 Content-Type 判断如何反序列化,如果遇到(经常遇到) Content-Type 不好好给的接口,就要重新配置 MessageConverter ,就更麻烦 自己做转换可以自己封装 Response<T> -> UserResponse extends Response<User> 这样的类型,或者用 json 库相关的机制转换也可以 |
2 uSy62nMkdH OP |
3 LeegoYih 2022 年 8 月 8 日 |
4 wolfie 2022 年 8 月 8 日 org.springframework.web.client.RestTemplate#exchange exchange 不是可以指定 ResponseEntity 泛型。 |
5 damai0419 2022 年 8 月 8 日 直接 postEntity/Object 的没有,只有 exchange 的有,不过封装一层也不麻烦。 public <T> ResponseEntity<T> exchange(String url, HttpMethod method, @Nullable HttpEntity<?> requestEntity, ParameterizedTypeReference<T> responseType, Object... uriVariables) ParameterizedTypeReference<T> responseType 这个字段是用来指定返回值的,支持了泛型嵌套能力。 |
7 lazyfighter 2022 年 8 月 8 日 我都是自己封装 httpUtil |
8 nekoneko 2022 年 8 月 8 日 ParameterizedTypeReference<List<String>> ptr = new ParameterizedTypeReference<List<String>>() {}; ResponseEntity<List<String>> res = restTemplateBuilder.build() .exchange(uriTemplate, HttpMethod.GET, null, ptr); 这样可以 |
9 zhangxzh 2022 年 8 月 8 日 via Android 这东西为什么单独拿出来用 |
10 RedBeanIce 2022 年 8 月 8 日 @LeegoYih springboot 项目直接引入 openfeign 嘛,,,好像挺不错的诶。。 |
11 Leviathann 2022 年 8 月 8 日 这破玩意的 api 突出一个乱七八糟 |
12 zhangxzh 2022 年 8 月 9 日 via Android @RedBeanIce 单独的 feign 应对简单客户端就足够了,openfeign 的间接依赖太重而且即使新版好像还挂着 cve 的牌子。同时欢迎换用 reative 和 WebClient |
13 xiangyuecn 2022 年 8 月 9 日 一律一把梭 益寿延年 |
14 Vaspike 2022 年 8 月 9 日 一楼正解,用 String+Jackson 可保平安 |
15 fuxinya &bsp; 2022 年 8 月 9 日 springboot openfeign + 1 国内这些个厂商,提供的 API 经常不遵守标准,明明是个 json ,返回的 Content-Type 却是 text/plain 我甚至见过这样的:Content-Type:application/json:charset=;charset= ,给他们提 bug 还说这关 Spring 框架什么事?没办法,自己搞个 Decoder 修改响应头适配呗。 |
16 kytrun 2022 年 8 月 9 日 同 feign ,前几天刚写了一篇关于 [Spring Cloud Feign 去除全局包装、统一异常处理]( https://kytrun.com/spring-cloud-feign-unwrap-and-exception/) 的文章 |