需要版本控制api

时间:2018-04-13 09:44:55

标签: ruby-on-rails api

有人可以解释一下API版本究竟是什么以及为什么需要它。我知道如何在rails web应用程序上为api创建版本,但我真的想知道为什么需要它。在某人投票或旗帜或任何东西之前,我用Google搜索,我找不到任何令人满意的答案。如果有人回答这个问题我真的很感激。

2 个答案:

答案 0 :(得分:2)

API版本控制允许您拥有多个版本的API并同时使用它们。使用此解决方案,您可以确保与API集成的所有应用程序的向后兼容性。

简单示例
您的API由10个不同的应用程序使用。您正在使用基本访问身份验证,但您注意到它可以做得更好。所以,你决定使用修改它并使用Oauth。

无API版本控制

在发布新的API版本之前,您必须等待所有10个应用程序实施更改。否则,您将失去集成。当然,您可以在代码中使用if/else语句来区分您应该使用哪种身份验证方法,但这样做并不优雅。

API版本控制

您可以随时发布新的API版本。然后,您可以通知您的客户,旧API将在3个月内弃用,因此他们有时间实施更改。

此外,您可以要求他们为所有请求添加一个参数(选择他们将使用的API版本),您可以将其设置为默认为新版本。这样可以避免想要使用API​​的新应用程序出现问题。

摘要(在我看来):
赞成
 1.干净优雅的代码(没有额外的if/else陈述)
 2.向后兼容性

缺点
 1.有时你必须复制你的代码
 2.它在开始时可能看起来像一个复杂的解决方案,但不要害怕

Here you can read关于API版本控制的两个选项 - URL参数和HTTP标头

我希望我的解释清楚,并帮助您理解API版本控制

答案 1 :(得分:2)

对API进行版本控制的主要原因是为每个使用它们的人提供一个恒定的结构。假设您为服务(v1)定义了一个初始API,并将其发送给您的客户。一段时间后,您的应用程序发生了变化,您可能希望排除某些字段/添加新字段。这对客户来说是个问题,因为如果他们期望的某些字段丢失,他们的API实现可能会中断。因此,您可以使用这些功能创建v2,而不会破坏初始功能。