这个问题更多的是寻求针对向后兼容性的固有编程挑战的正确方法。我试图了解这是否违反了现有REST API的向后兼容性。
如果您认为这不是正确的地方,请在评论中提及我可以提出此问题的正确论坛。
我有一个REST API,它返回以下响应:
[
{
"name":"accountID",
"value":500
},
{
"name":"accountType",
"value":"PREMIUM"
},
{
"name":"supportType",
"value":"Phone"
}
]
现在由于最近的一些更新,我必须在API中发送更多信息,更新后的响应如下:
[
{
"name":"accountID",
"value":500,
"encrypted":false
},
{
"name":"accountType",
"value":"PREMIUM",
"encrypted":true
},
{
"name":"supportType",
"value":"Phone",
"encrypted":false
}
]
如果我打破任何向后兼容性,请帮助我理解。据我所知,只有当我从现有的JSON响应中删除某些东西而不是通过在JSON中添加额外内容时,才会打破向后兼容性。
由于大多数JSON库提供了忽略无法识别的属性的功能。
即使我们使用jsonpath一次浏览对象一个节点,如果有人不理解新属性,也应该没问题。