我有一个关于REST调用兼容性的问题。。。比如说,我有一个应用程序-1,它理解一些映射到类型1对象的JSON,并且它与一个升级的应用程序通信,该应用程序发送类型-1对象的JSON响应,但添加了字段,为什么我在应用程序-2发送的应用程序-1上将JSON转换为对象时会出现异常?难道我们不应该丢弃我们不了解的属性吗?我使用Config.getInstance((.getMapper((.covertValue(body,MyClass.class(将JSON转换为对象。
当您使用POJO对REST API提供者和使用者进行建模时,这意味着当数据结构发生变化时,您必须同时升级双方。
然而,如果您只是使用Map或List对接口进行建模,那么在服务演化方面就有了更大的灵活性。
我几年前写过一篇关于这个话题的文章,希望它能有所帮助。https://www.networknt.com/design/evolution/
使用Jackson ObjectMapper时,可以选择忽略有效负载中的某些字段。这可以避免一些问题,但不是全部问题。这是与GraphQL、RPC等相比的REST问题之一。