API调用原理说明

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: API调用原理说明

TOP作为淘宝数据插槽,只要用户按照TOP的规范拼装一个正确的URL,通过HTTP请求到TOP,就能够拿到用户自己需要的数据。


调用原理的示意图如下:在这里插入图片描述3.2使用方式详解1)参数介绍API由入参和出参(返回结果)组成,其中入参包含系统级参数和应用级参数。


系统级参数:对于每个API均一致,主要用于加密、标识用户身份、API协议版本等用途。

参数名类型是否必须参数解释methodstringYAPI接口名称sessionstringNTOP分配给用户的SessionKey,如果需要访问用户隐私数据必选。


timestampstringY时间戳,格式为yyyy-mm-dd HH:mm:ss,例如:2008-01-25 20:23:30。淘宝API服务端允许客户端请求时间误差为10分钟(授权码10分钟有效期)。formatstringN可选,指定响应格式。默认xml,目前支持格式xml,jsonapp_keystringYTOP分配给应用的AppKeyvstringYAPI协议版本,可选值:2.0。signstringYAPI输入参数签名结果sign_methodstringY参数的加密方法选择,可选值是:md5,hmac应用级参数:针对API的不同用途,一般应用级参数各不相同,详细参见API文档。2)签名方法调用API时,需要将所有入参以及入参值加入签名,即:系统级参数(除去sign)名称、系统级参数值、应用级参数名称、应用级参数值全部加入签名。I.签名参数串排序签名时,根据参数名称,将除签名(sign)和图片外所有请求参数按照字母先后顺序排序:key + value … key + value 。注:1、 排序若首字母相同,则对第二个字母进行排序,以此类推。2、value无需编码。3、对于非必选参数,如果没有value值,也可不参与签名。例如:将“foo=1,bar=2,baz=三” 排序为“bar=2,baz=三,foo=1”参数名和参数值链接后,得到拼装字符串bar2baz三foo1II.签名算法淘宝同时支持md5和hmac两种加密方式? md5加密方法:选择md5加密方式,系统级参数sign_method=md5;将注册应用时得到的密钥(AppSecret)同时拼接到参数字符串头、尾部进行md5加密,再转化成大写,格式是:byte2hex (md5(AppSecrekey1value1key2value2… AppSecre))。? hmac加密方法::选择hmac加密方式,系统级参数sign_method=hmac;用hmac的md5方式,只需在排序后的字符串头部加入AppSecre,签名后再转化成大写,格式是:byte2hex (hmac(AppSecre key1value1key2value2…))。注:hex为自定义方法,JAVA中md5是对字节数组加密,加密结果是16字节,我们需要的是32位的大写字符串。III.签名实例调用API:taobao.item.get,使用appkey=test;appsecret=test使用系统默认md5为例,因为各语言语法不一致,以下实例只体现逻辑,输入参数为:系统级参数应用级参数method=taobao.item.gettimestamp=2010-06-20 17:51:30format=xmlapp_key=testv=2.0fields=descnick=测试帐号num_iid= 5159315527sign_method=md5?


第一步:按照参数名称升序排列app_key=testfields=descformat=xmlmethod=taobao.item.getnum_iid= 5159315527nick=


测试帐号sign_method=md5timestamp=2010-06-20 17:51:30v=2.0?


第二步:生成sign拼装字符串:连接参数名与参数值,并在首尾加上app_secret(这里假设appsecret=test)值:testapp_keytestfieldsdescformatxmlmethodtaobao.item.getnum_iid5159315527nick

测试帐号sign_methodmd5timestamp2010-06-20 17:51:30v2.0test得到32位大写md5值: C759772107FB3FD90ACC76BC5831BB963)发送http请求拼装URL:将所有参数值转换为UTF-8编码,然后进行拼装。


例如:http://gw.api.taobao.com/router/rest?app_key=test&fields=desc&format=xml&method=taobao.item.get&num_iid=5159315527&nick=%E6%B5%8B%E8%AF%95%E8%B4%A6%E5%8F%B7&sign_method=md5&sign=C759772107FB3FD90ACC76BC5831BB96

×tamp=2010-06-20+17%3A51%3A30&v=2.0范例中,http://gw.api.taobao.com/router/rest为API调用入口。


正式环境:http://gw.api.taobao.com/router/rest

沙箱环境:http://gw.api.tbsandbox.com/router/rest


以上是从行业内了解到的一些情况,有兴趣的可交流留言。请查看http://console.open.onebound.cn/console/?i=Turbo


相关文章
|
6月前
|
消息中间件 分布式计算 Java
探究Kafka原理-3.生产者消费者API原理解析(上)
探究Kafka原理-3.生产者消费者API原理解析
68 0
|
3月前
|
API 开发者 Python
API接口:原理、实现及应用
本文详细介绍了API接口在现代软件开发中的重要性及其工作原理。API接口作为应用程序间通信的桥梁,通过预定义的方法和协议实现数据和服务的共享。文章首先解释了API接口的概念,接着通过Python Flask框架示例展示了API的设计与实现过程,并强调了安全性的重要性。最后,本文还讨论了API接口在Web服务和移动应用程序等领域的广泛应用场景。
|
3月前
|
Kubernetes 负载均衡 API
在K8S中,api-service 和 kube-schedule 高可用原理是什么?
在K8S中,api-service 和 kube-schedule 高可用原理是什么?
|
6月前
|
XML 搜索推荐 API
通义千问API:让大模型使用各种工具
本章我们将通过一个简单的例子,揭示基于LangChain的Agent开发的秘密,从而了解如何扩展大模型的能力。
通义千问API:让大模型使用各种工具
|
5月前
|
存储 缓存 Java
JavaSE 字符串String及相关API StringBuilder StringJoiner 底层原理 详解
JavaSE 字符串String及相关API StringBuilder StringJoiner 底层原理 详解
46 2
|
6月前
|
安全 算法 Java
Java Stream API:原理、应用与深入解析
Java Stream API:原理、应用与深入解析
305 2
|
JSON 测试技术 API
API接口:原理、实现及应用
API接口:原理、实现及应用
Qt 窗口常用位置API函数 & 绘图原理 & 双缓冲机制 总结
Qt 窗口常用位置API函数 & 绘图原理 & 双缓冲机制 总结
|
6月前
|
安全 Java API
Spring工厂API与原理
Spring工厂API与原理
69 10
|
XML JavaScript API
API接口:原理、设计与应用
API,全称应用程序接口,是一些预先定义的函数,目的是提供应用程序与开发人员以访问一组例程的能力,我们可以在不暴露各内部例程的情况下,使用这些例程。API是构建在操作系统或应用程序之间的接口,它充当一个桥梁或纽带,使得不同的应用程序或系统之间可以相互交流和交互。

热门文章

最新文章