API开发的版本控制技巧

API开发的版本控制技巧

版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/42779095

《API开发的版本控制技巧》

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

在设计和构建API时,API的版本控制是非常重要的。

必须确保新API对于现有的API不会造成破坏。

首先,也是最重要的,可以把版本号放入API的URL中。这样可以把主要版本更新放入API。比如,我们在调用CHUser Center API时,可以在URL中使用/api-v1或/api-v2来指出所使用的API版本。这是很常见的做法。

在API版本控制中,还有一点也很重要。希望API能支持次要版本的更新。次要版本更新所造成的变化仍然会影响接口,因此有可能会影响当前API的使用者,但它们与主版本的URL和API的基本功能都在变化不同,URL和API基本功能仍然是相同的。比如在CHUser Center API,次要版本的修改是通过客户在API调用时发起请求的HTTP头部做指定的。

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

头部的版本元素看起来是这样的:

Element-Version: 1

再举一个API次要版本更新的例子,如果我们想修改响应的JSON字段的名称。假设我们有一个名为GET /people的API调用,它会返回以下JSON数据:

{

  “firstN”: “foo”

}

我们决定把JSON字段中的firstN改成firstName。很显然,这只是一个小改动,所以它属于API次要版本更新的范畴,无须做主版本的修改和不同的URL签名。因此,我们会创建另一个GET /people接口,要调用它还需要在HTTP头部加上

Element-Version: 2

然后就会返回以下JSON数据:

{

  “firstName”: “foo”

}

在CHUser Center API中,当一个新用户注册后,我们会设置此用户的HTTP头部默认为CHUser Center上最新的Elements-Version版本。这可以保证新用户总是使用我们提供的最新API服务,这样就无须在每次API调用时指定任何HTTP头部元素了。当然,也可以手动指定版本。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/109587.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 大数据:数据采集平台之Apache Flume

    大数据:数据采集平台之Apache Flume大数据:数据采集平台之ApacheFlume官网:https://flume.apache.org/Flume是Apache旗下的一款开源、高可靠、高扩展、容易管理、支持客户扩展的数据采集系统。Flume使用JRuby来构建,所以依赖Java运行环境。Flume最初是由Cloudera的工程师设计用于合并日志数据的系统,后来逐渐发展用于处理流数据事件。Flume设计成一个分布式…

  • strstr函数头文件_strstr函数[通俗易懂]

    strstr函数头文件_strstr函数[通俗易懂]函数名:strstr功能:在串中查找指定字符串的第一次出现用法:char*strstr(char*str1,char*str2);程序例:#include#includeintmain(void){char*str1=”BorlandInternational”,*str2=”nation”,*ptr;ptr=strstr(str1,str2);print…

  • OHEM 代码详解「建议收藏」

    OHEM 代码详解「建议收藏」目录1.网络结构2.OHEM前向传播3.reference1.网络结构############################ReadonlyRoINetwork###########Start##########layer{name:”roi_pool5_readonly”type:”ROIPooling”bottom:”co…

  • java键盘钩子_jna test【鼠标 键盘钩子】「建议收藏」

    java键盘钩子_jna test【鼠标 键盘钩子】「建议收藏」jna4.5简单实现后台键盘事件通过jna实现在后台运行,当屏幕按下相对应的按钮时JAVA实现鼠标钩子的源代码仅用JAVA实现全局鼠标钩子的功能,很好很超强,学习下java全局按键键盘钩子java鼠标按键钩子,内含test.java使用实例,hook文件夹是写好的钩子,放到项目源文件下,直接调用。两个jar包是必须建立到项目中的c#Wpf简单鼠标钩子实例一个简单的鼠标钩子例子帮助初学者掌握。基于…

  • 解释器模式-破解算术验证码

    解释器模式-破解算术验证码给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。

  • 表结法和账结法_我国采用表结法还是账结法

    表结法和账结法_我国采用表结法还是账结法为了计算出当期利润,通常采用两种方法:表结法和账结法。国内一些财务系统多采用账结法,这似乎比较符合中国式习惯。即:期末,损益类的虚账户的余额结转汇总到本年利润科目,最后账户无余额;资产负债类实账户结

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号