Jasper:API / 后向兼容性
| ylbtech-Jasper:API / 后向兼容性 |
| 1.返回顶部 |
后向兼容性
为了给客户提供创新的业务解决方案,Cisco Jasper 会定期扩展我们 API 框架的功能。我们会尽最大努力确保大多数 API 变更都可以后向兼容,使您无需在我们每次更改框架之后更新您的代码。后向兼容的变更包括:
- 向 API 服务添加 API 接口
- 向 API 接口添加方法
- 向方法添加 HTTP 绑定
- 向请求消息添加字段
- 向响应消息添加字段
- 向枚举添加值
- 添加仅输出资源字段
后向兼容的变更不会对符合最佳做法的应用程序产生影响。
编码指南
即使我们用上述某个后向兼容的变更更新了 API 框架,遵守下述编程指南的应用程序代码仍能继续正常运转。这些指南适用于使用 Control Center 的 REST API 和 SOAP API 的程序以及那些对来自 Control Center 推送 API 的消息进行解析的程序。
- 切勿对逻辑进行硬编码以匹配特定的参数顺序。
- 确保您的代码符合 HTTP 标准。该标准包括多个默认和可选参数,并且不断发展演变,经常出现新的标头和参数。
- 在进行字符串匹配之前,确保使用标记化来分隔标记。
- 在行的结尾处利用回车+换行符 (CRLF) 组合来提示没有更多要处理的标记。
- 根据数据类型对数据应用适当的转换。
- 始终在匹配逻辑中使用默认的“获取全部”以获取意外错误。
例如,假设您要解析 HTTP 标头中的 Content-Type 标记并基于该信息处理有效负载。一种方法是解析有效负载,查找与 content-type=application/x-www-form-urlencoded 精确匹配的字符串。不过,在将来的某个时候,Cisco Jasper 可能会决定使用可选参数 charset=UTF-8,这会将标记行更改为 content-type=application/x-www-form-urlencoded ; charset=UTF-8。HTTP 响应标头字符串中的这一变更会中断期望收到相同字符串的解析器代码。
更好的做法是分解标记,密切关注换行符和回车序列,放入错误捕获情景,等等。此特定标记在 HTTP 1.1 RFC2616(第 21 页)中定义为 <charset :token>,其中 charset 由 IANA 字符集注册表定义,Content-Type 是其中一个字符集。
要为 URL 编码形式的数据编写解析器,请参考万维网协会 (W3C) 的相关说明。
不可后向兼容的变更
尽管 Cisco Jasper 尽力确保大多数 API 变更都可以后向兼容,但有时冲突不可避免。不可后向兼容的变更包括:
- 删除或重命名服务、接口、字段、方法或枚举值
- 更改 HTTP 绑定
- 更改字段类型
- 更改资源名称格式
- 更改现有请求的可见行为
- 更改 HTTP 字义中的 URL 格式
- 向资源消息添加读取/写入字段
Cisco Jasper 会在不可后向兼容的变更生效前至少提前六个月向运营商发出通知。该通知将包括变更的具体信息,以及如何在不中断服务的情况下升级代码的指导说明。
API 版本
每个 API 函数都有一个版本号,用于标识 API 的结构和行为。Cisco Jasper 会在以下情况下递增此版本号:
- 函数收到不可后向兼容的变更,而且
- 前一版本的函数仍受支持。
如果 Cisco Jasper 进行后向兼容的函数变更,同时对前一版本的支持将会停止,则版本号保持不变。有关每种 API 类型的版本号,请参阅详细文档。
| 2.返回顶部 |
| 3.返回顶部 |
| 4.返回顶部 |
| 5.返回顶部 |
| 6.返回顶部 |
![]() |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
Jasper:API / 后向兼容性的更多相关文章
- [整理]IIS 6.0 下部署 Asp.net MVC Web Api 后 HTTP PUT and DELETE 请求失败
http://guodong.me/?p=1560 ASP.NET MVC 4 has a new feature called WebAPI which makes it much easier t ...
- 部署Web API后Delete请求总是报 405(Method Not Allowed)解决办法
WebDAV 安装IIS的时候如果选择了WebDAV(Web Distribution Authorization Versioning) Publish,则所有的 ...
- Cassandra简介
在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...
- 开源软件:NoSql数据库 - 图数据库 Cassandra
转载原文:http://www.cnblogs.com/loveis715/p/5299495.html Cassandra简介 在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了 ...
- Atitit.提升api兼容性的方法 v3 q326
Atitit.提升api兼容性的方法 v3 q326 1. Atitit.兼容性的“一加三”策略1 2. 2. 扩展表模式1 3. 3. 同时运行模式1 3.1. 3.1. 完美的后向兼容性2 3.2 ...
- c/c++ socket API 调用后的错误判断 perror errno
socket API 调用后的错误判断 perror errno 调用完socket API后,需要判断调用是否成功与失败.如果失败,会自动设置errno(是个整数), 并且用perror可以打印出具 ...
- 浅谈WebService的版本兼容性设计
在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...
- Atitit.软件兼容性原理与实践 v5 qa2.docx
Atitit.软件兼容性原理与实践 v5 qa2.docx 1. Keyword2 2. 提升兼容性的原则2 2.1. What 与how 分离2 2.2. 老人老办法,新人新办法,只新增,少修改 ...
- Google 地图 API V3 针对移动设备进行开发
Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...
随机推荐
- H2数据库集群
H2数据库集群 1. H2数据库简单介绍 1.1 H2数据库优势 经常使用的开源数据库:H2,Derby,HSQLDB.MySQL,PostgreSQL. 当中H2,HSQLDB相似,十分适合作为嵌入 ...
- 基于Innobackupex的全备恢复
对于MySQL数据库的热备,xtrabackup是大多数DBA朋友们的选择.xtrabackup内嵌了一个innobackupex可用于热备MySQL数据库.本文描写叙述了基于innobackupex ...
- mysql存储过程之循环
链接: http://www.blogjava.net/rain1102/archive/2011/05/16/350301.html
- shell脚本分析mysql慢查询日志(slow log)
使用percona公司的pt-query-digest分析慢查询日志.分析.统计的结果的比較清晰 #!/bin/sh slowlog_path=/root/slow_query_log everysl ...
- Linux CenOS Python3 和 python2 共存
1.查看是否已经安装Python CentOS 7.2 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5. 使用 python -V 命令查看一下是否安 ...
- caffe配置Makefile.config----ubuntu16.04--重点是matlab的编译
来源: http://blog.csdn.net/daaikuaichuan/article/details/61414219 配置Makefile.config(参考:http://blog.csd ...
- VMware安装ubuntu学习笔记(只是笔记)
VMware安装ubuntu开机黑屏/死机 1- Edit Ubuntu VM Configuration file (.vmx) 2- Add the following line cpuid.1. ...
- C语言malloc
在子函数里面动态申请的内存不会自动被系统收回的,因为这些空间在堆里面,而不是栈,平常所说的不能返回指向栈的指针,比如在子函数里面定义一个字符指针,指向常量"hello"因为函数调用 ...
- SVN经常使用命令总结(持续更新)
如今流行的协同管理工具预计就属SVN和Git了.这两者都使用过,只是如今正在使用的是SVN.故将常常使用的命令总结下来. 无论是Windows端的svnclient还是eclipse的subversi ...
- FreeCMS怎么动态訪问模板?
原文地址:http://javaz.cn/site/javaz/site_study/info/2015/31166.html 项目地址:http://www.freeteam.cn/ FreeCM ...
