Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确保向后兼容性的API设计_Api_Backwards Compatibility - Fatal编程技术网

确保向后兼容性的API设计

确保向后兼容性的API设计,api,backwards-compatibility,Api,Backwards Compatibility,在设计确保向后兼容性和新版本发布的API时,是否需要记住任何最佳实践。欢迎提供文章/博客的链接。请保持这两个链接的运行,并在url中显示版本api.mysite.com/[version]/api/url/here。当API的新版本到达时通知用户,并在一段时间后删除旧版本。或者当它不再使用,或者像6个月,确保用户有足够的时间来改变它 或者让它永远运行,但不要为它提供任何新功能。您应该查看关于API设计的演示文稿。它来自谷歌,非常好。 它还涉及向后兼容性和新版本 最好的方法是在新版本中使用新接口和

在设计确保向后兼容性和新版本发布的API时,是否需要记住任何最佳实践。欢迎提供文章/博客的链接。

请保持这两个链接的运行,并在url中显示版本
api.mysite.com/[version]/api/url/here
。当API的新版本到达时通知用户,并在一段时间后删除旧版本。或者当它不再使用,或者像6个月,确保用户有足够的时间来改变它


或者让它永远运行,但不要为它提供任何新功能。

您应该查看关于API设计的演示文稿。它来自谷歌,非常好。 它还涉及向后兼容性和新版本


最好的方法是在新版本中使用新接口和类保留旧接口或类,并将它们标记为已弃用(意味着这些将在将来的版本中删除)


请听API设计师牢记公共接口和发布接口之间的区别。

这基本上就是我在多个项目中使用的方法。我经常看到的另一种模式是让
api.example.com/
指向api的最新版本——请注意缺少版本号。不想要最新和最好版本的客户端可以自由点击版本化的URL-
api.example.com/v1/
如果在URL方案中包含版本化,是否仍然可以将其称为REST api还有一些讨论。再见,谢谢。这些更倾向于API的版本控制和部署。我想知道是否有任何关于如何公开API的指南,如果您的数据架构发生变化(您删除/修改通过API等公开的某些数据类型),会发生什么情况@Sampat如果您喜欢答案(作为最佳答案),请标记该答案way@Anurag按照你建议的方法,如果我指向最新版本并实现我的端点解决方案,并且可能正在开发中,您的新版本API将在同一URI上发布,并且您将当前的live版本设置为/vn/那么仍然有可能破坏端点?但仍然破碎,也许就是这个?链接已断开。谢谢@user180574。我编辑了我的答案并加入了新的链接。