Jasper:API / API 策略和最佳做法
| ylbtech-Jasper:API / API 策略和最佳做法 |
| 1.返回顶部 |
API 策略和最佳做法
Cisco Jasper 已经建立了一项 API 公平使用策略,确保所有 Control Center 用户都可以获得最佳的体验。任何使用 Control Center API 的客户端代码都必须遵守下述限制规定。
并发连接
Cisco Jasper 建议企业避免进行并发处理,因为它可能会显著降低响应速度。我们建议仅在单线程应用程序或例程中使用 API。在多线程情况下使用 API 的账户可能会受到限流或其他限制,具体视环境而定。
策略: 使用单线程代码 - 一次一项 API 调用。
每秒调用数
Cisco Jasper 通过限制账户每秒可以进行的 API 调用数来确保可靠的 API 性能。如果您的账户超出限制,则在测量期间(一秒)内的后续 API 调用将根据 API 类型获得下表中显示的响应。经过适当的延迟后,程序应该重试 API 调用。
| API 类型 | 返回代码 | 消息 |
|---|---|---|
| REST | 40000029 | 超出资费限制 |
| SOAP | 400101 | 许可已超出 API 调用的资费限制 |
随着我们不断地调整优化平台以提高速度和可靠性,Cisco Jasper 可能会不时更新每秒调用数限制。如果您使用以下所述的最佳做法(单线程代码、动态速率限制等),这项限制将不会产生影响。需要时,运营商可以提供有关这项限制的更多详细信息。
请注意,此限制同时包括账户和账户的客户进行的 API 调用。例如,如果某账户有两位 API 用户,他们及其 5 位客户同时进行了 API 调用, Control Center 会将该账户的每秒调用总数计为 7 个。最初的 API 调用会成功,但是在达到限制之后,其余的 API 调用将返回上面显示的其中一条消息。
这个限制也适用于 REST 和 SOAP API 调用的组合。例如,假设某个账户同时进行了 1 次 REST API 调用和 1 次 SOAP API 调用,同时该账户的其中一位客户进行了一次 REST API 调用。Control Center 会将该账户的每秒调用数计为 3 个。
策略。使用动态速率限制和其他最佳做法来遵守这项限制。
最佳做法
以下技巧可帮助您避免 API 使用过量时可能发生的限流或其他用量限制。
添加速率限制代码
避免超过每秒调用数限制的最佳做法便是创建单线程代码。但是,您可能会遇到无法避免的情况。例如:
- 多个 API 用户都在进行调用。
- 您需要同时使用 REST 和 SOAP 函数。
- 您有大量需要多线程进程的调用。
在这些情况下,建议创建速率限制例程,用于监控和调节您的 API 调用。例如,如果账户在处理调用时收到多个错误消息,您可以在 API 调用之间引入一个等待时间。您可以增加这个等待时间,直到错误不再出现。
虚拟代码示例。以下虚拟代码将演示速率限制代码的作用方式。
// DISCLAIMER: THIS EXAMPLE IS PROVIDED FOR ILLUSTRATION PURPOSES ONLY,
// AND WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED
WHILE ( <<list is not empty>> )
{
// API_call attempts to perform an action to update the DEVICE status
// it returns the API response code
response = API_call( <<list element>> )
// API call returns the "limit exceeded" error, increase loop delay
IF ( response == ERROR_LIMIT_EXCEEDED )
{
delay += ADJUST_DELAY_INCR
}
ELSE
{ // ensure delay never goes below 0
IF ( delay > ADJUST_DELAY_DECR )
{
delay -= ADJUST_DELAY_DECR
}
ELSE
{
delay = 0
}
}
sleep( delay )
}
调整调用频率
通过 API 跟踪设备用量时,必须将您的 API 调用频率与运营商的更新频率保持一致。
例如,如果您的运营商每 6 小时更新一次用量信息,则通过 API 请求信息的频率不能超过每 6 小时一次。此外,用量数据可用的时间与 Control Center 从运营商接收到该用量数据的时间之间通常会有延迟。有时,延迟可能长达 24 小时。
使用缓存
Cisco Jasper 鼓励使用本地缓存。例如,可以创建一个简单的例程来每天检查一次缓存,而不是每加载一次页面就调用一次 API。
使用筛选器限制 API 调用
在执行程序前通过检查特定条件来避免不必要的 API 调用。例如:
- 如果设备已停用,请勿检查用量。
- 如果客户未请求设备用量,请勿每小时检查一次。
延长搜索之间的间隔时间
如果收到为空或者未改变的 API 响应,请延长查询间隔。例如,考虑将查询从每两个小时一次更改为一天一次。
| 2.返回顶部 |
| 3.返回顶部 |
| 4.返回顶部 |
| 5.返回顶部 |
| 6.返回顶部 |
![]() |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
Jasper:API / API 策略和最佳做法的更多相关文章
- Google advertiser api开发概述——最佳做法&建议
最佳做法 本指南介绍了一些最佳做法,您可以运用它们来优化 AdWords API 应用的效率和性能. 日常维护 为确保您的应用不间断运行,可采取以下做法: 确保 AdWords API 中心中的开发者 ...
- Jasper:API / 后向兼容性
ylbtech-Jasper:API / 后向兼容性 1.返回顶部 1. 后向兼容性 为了给客户提供创新的业务解决方案,Cisco Jasper 会定期扩展我们 API 框架的功能.我们会尽最大努力确 ...
- Atitit.研发管理---api版本号策略与版本控制
Atitit.研发管理---api版本号策略与版本控制 1. 1.2.1版本概述1 2. 3主版本号策略2 3. 1PATCH版本策略2 3.1. 1.2.2.1次版本号策略2 表3-1 APR中支持 ...
- restful api的10个最佳实践
Web API在过去的几年里非常盛行,因为它有着语法简单.规范化和轻量级的优点,因为得到广泛的推崇,很多过往的技术手段都慢慢转换为使用Web API来开发.而Web API通常使用的设计方式是REST ...
- .NET API 接口数据传输加密最佳实践
.NET API 接口数据传输加密最佳实践 我们在做 Api 接口时,相信一定会有接触到要给传输的请求 body 的内容进行加密传输.其目的就是为了防止一些敏感的内容直接被 UI 层查看或篡改. 其实 ...
- [转]移动App测试中的最佳做法
Daniel Knott 用过各种不同编程语言和软件质量保证工具.他在软件开发和测试方面干了七年,自2010年起,他一直在德国汉堡的XING AG公司就职,几个项目里,比如XING调查和XING建议, ...
- 移动App测试中的最佳做法
一说起软件测试,测试员想到肯定是去检查文件,功能,API,性能并确定软件是否安全,以及关于软件特定部分的其他事项.但是对于移动测试,测试员不得不基于用户移动使用模式考虑移动相关的功能. 本文是基于我的 ...
- 【转】移动App测试中的最佳做法
一说起软件测试,测试员想到肯定是去检查文件,功能,API,性能并确定软件是否安全,以及关于软件特定部分的其他事项.但是对于移动测试,测试员不得不基于用户移动使用模式考虑移动相关的功能. 本文是基于我的 ...
- 【译】Permissions Best Practices Android M权限最佳做法
Permissions Best Practices PreviousNext In this document Consider Using an Intent Don't Overwhelm th ...
随机推荐
- 【西祠日志】【07】努力努力,找资料,思考,怎么做asp图片上传
[西祠日志][07]努力努力,找资料.思考.怎么做asp图片上传 (2015.07.23周四) 今天忘了带本子.直接写在书上了笔记,晚点还是夹在本子里. 学了这么久的web应用,一直都没时间去做一点 ...
- 配置Office Outlook 2013
导航 背景——配置过程——错误(Error)——参考资料 背景 最近,折腾了一阵子邮箱客户端,包括:Foxmail.thuderbird.outlook:最后,考虑到outlook对文本的强大的支持能 ...
- js json 对象
JSON 语法规则 JSON 语法是 JavaScript 对象表示法语法的子集. 数据在名称/值对中 数据由逗号分隔 大括号保存对象 中括号保存数组 JSON 名称/值对 JSON 数据的书写格式是 ...
- c语言-递推算法1
递推算法之一:倒推法 1.一般分析思路: if 求解初始条件F1 then begin { 倒推 } 由题意(或递推关系)确定最终结果Fn; 求出倒推关系式Fi-1 =G(Fi ); i=n; { 从 ...
- 每天一个linux命令(23):Linux 目录结构(转)
对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面 ...
- vue-router篇
目录结构: -lib-vue.js -lib-vue-router.js -js-main.js -index.html 1.安装和基本配置 2.传参以及获取传参 3.子路由 4.手动访问和传参 5. ...
- linux c 网络编程:用域名获取IP地址或者用IP获取域名 网络地址转换成整型 主机字符顺序与网络字节顺序的转换
用域名获取IP地址或者用IP获取域名 #include<stdio.h> #include<sys/socket.h> #include<netdb.h> int ...
- 阿里云nginx+thinkphp环境运行会直接下载php文件的问题。
测试了好久,在网上查了各种nginx.conf的虚拟机配置都没用 其实最简单的方法就是在php.ini中找到 #cgi.fix_pathinfo=1; 去掉前面的#,如果值不是1则改为1
- centos编译 Compiling FFmpeg on CentOS RHEL Fedora
This guide is based on a minimal installation of the latest CentOS release, and will provide a local ...
- EasyPusher手机直播图像旋转90度后画面重复的问题
本文转自:http://blog.csdn.net/holo_easydarwin/article/details/51147379 最初在做EasyPusher手机直播的时候遇到过一个问题:手机竖屏 ...
