feign 调用 如果 服务返回有 n个字段 ,客户端调用 响应 对象中只有n-1 个字段
在 Feign 调用中,服务端返回了 N 个字段,但客户端响应对象只定义了 N-1 个字段,这完全不会报错!Feign 的反序列化(JSON → Java 对象)是宽松的,@JsonIgnoreProperties(ignoreUnknown = true) 默认就是开启的,多出来的字段会被忽略。
但如果少了某个字段(客户端有,服务端没返回),那这个字段就会是 null(或默认值),并且不会报错,只有后续业务逻辑使用它时才可能触发 NullPointerException。
一、不同情况的行为分析
| 情况 | 是否报错 | 客户端字段值 | 风险 |
|---|---|---|---|
| 服务端多字段,客户端少字段 | ❌ 不报错 | 客户端字段正常赋值,多余字段被忽略 | 无 |
| 服务端少字段,客户端多字段 | ❌ 不报错 | 客户端多出的字段为 null | NullPointerException |
| 字段名不一致 | ❌ 不报错 | 匹配不上的字段为 null | NullPointerException |
| 类型不一致 |