我打算在后端的Json响应中添加一个额外的字段。由于此API已被大量客户端使用,因此我无法更改每个客户端。 这会影响现有的前端客户端功能吗?在后端代码中添加JSON中的额外字段
0
A
回答
0
这会影响现有客户吗?
我们不知道没有审计所有的客户端。
这是否会影响现有客户?
不,不应该,但是......
难道这种影响现有的客户?
是的。某些客户端可能会枚举JSON文档中的字段(对于RPC式API,元编程或反射更常见)。他们可能会或可能不会彻底破裂,但在这种情况下,结果是不明确的。
那么我该怎么做?
有两种选择:
添加一个新的领域应该是安全的。基于总体风险较低的预期,您只需付出最少的努力,只需添加该字段即可。 (IMO这是实用的选项)。
您创建了一个新的API,它添加了字段/ v2 /或其他带有额外字段的端点,以便新客户端可以选择加入新数据和旧数据客户不受影响。 (这是防弹的选择。)
您也可以使新的领域选择加入,如果客户端的请求经过一定的头,使人们可以测试他们的客户端的兼容性发布新API之前(基本上#2,但是暂时的)。
哪种解决方案是合适的取决于您的API客户端的性质和数量。例如,如果嵌入式设备中有大量客户端,则您可能不应更改现有的API。 OTOH如果您的客户都使用公共库与您的API交互并且可以轻松更新,则可以先更新客户端库,然后在大多数客户更新后更新API。
我可以让这更容易吗?
是的,如果你有一个API合同/设计文件,指出“客户应该预料到新的领域可以被添加到现有的端点”,那么这从本质上变成一个安全的操作所有的时间。
很好考虑您的整体立场是朝向向后兼容性,弃用和升级。展望未来,您应该写下来,以便您和您的客户对您的API如何发展具有相同的期望。通过这种方式,您可以参考设计文档来作出此决定,客户作者可以参考它来作出适当的编程决定。
相关问题
- 1. PHP代码将额外的字符添加到JSON字符串
- 2. 添加额外的字段的OpenERP 7
- 3. 将额外的字段添加到fullcalendar
- 4. 向todo.js添加额外的字段
- 5. 如何向实体的序列化JSON添加额外字段
- 6. 如何在joomla 3和2.5中添加额外的字段?
- 7. 如何通过nutch在hbase中添加额外的字段?
- 8. 在asp.net中为登录功能添加额外的字段
- 9. 是否可以在Sequelize关系中添加额外的字段?
- 10. 向Django站点添加额外字段
- 11. 向FOAF文件添加额外字段
- 12. 使用Django添加额外的\\字符JSON编码
- 13. Rails在设计注册中添加额外字段
- 14. 如何在joomla 2.5注册表单中添加额外字段?
- 15. 如何在magento结帐过程中添加额外字段?
- 16. 如何保留后额外添加的输入字段中的数据
- 17. Java/Hibernate - 将额外的字段添加到数组表中?
- 18. (web2py)添加引用另一个字段的额外字段auth_user
- 19. 在Json中使用$ .ajax和Zend的额外字段
- 20. Gson.toJson添加额外的引号JSON
- 21. 向标准PrestaShop表中添加额外字段是否安全?
- 22. 如何在wordpress中添加注册表单中的一些额外字段?
- 23. 在matplotlib中添加额外的滑块
- 24. 额外的代码添加在WordPress的网址结束?
- 25. 在json中添加响应代码
- 26. Django在字段上的注释添加额外的
- 27. SSIS - CSV导入后在字段中获取额外数字
- 28. 可以添加额外的字段到@ManyToMany Hibernate额外的表吗?
- 29. 在标签式活动中添加额外的片段
- 30. 添加额外的HTML行:在哪里放置代码?
如果您添加一个额外的字段,我认为它不会影响现有客户端,因为他们仍然会获取所需的所有数据。 –
取决于如何在这些客户端中解析JSON。 – Walk
只要您以正确的格式发送响应,就不应该这样做。另请阅读https://stackoverflow.com/help/how-to-ask和MCVE。如果您没有向我们展示任何代码,您如何期待我们帮助您解决问题? – Gautam