构造请求
构造请求
本节介绍如何构造API调用请求。构造好的请求,您可以使用curl或者postman等工具进行测试验证。
请求URI由如下部分组成。
{URI-scheme} :// {Endpoint} /? {query-string}
●URI-scheme:表示用于传输请求的协议,当前所有API均采用HTTPS协议。 ●Endpoint:指定承载API服务端点的服务器域名(或IP)和端口,不同服务实例的Endpoint不同,您可以从控制台菜单「开发配置」>>「云端 API」中获取。 ●query-string:查询参数,分为公共参数和接口参数。公共参数是所有接口都需要传的参数,比如签名信息、时间戳等。接口参数是要调用的接口规定的参数比如接口名字(Action)等。
例如您需要在演示环境查询某个产品下的设备列表,需要使用演示环境的Endpoint(si-d6e8d812acb848958054.tuyacloud.com:8686),并查找对应的接口名字(QueryDevice)。拼起来如下:
https://si-d6e8d812acb848958054.tuyacloud.com:8686/?Action=QueryDevice&SignatureNonce=8d6131cab4e6465d975ba65ba4d45aad&AccessKeyId=xMr9wgwXQLhv****65o03mcD&SignatureMethod=HMAC-SHA1&Timestamp=2024-11-17T09:41:41Z&ProductKey=dwwAsxAkOwT7xhIY&Signature=Gg4HDRr8kYn2R0mYDI5hwOvrJDI%3D
在阅读下文时,您可以结合对照上面的请求示例进行理解
您可以在终端使用curl命令进行测试验证。
curl https://si-d6e8d812acb848958054.tuyacloud.com:8686/?Action=QueryDevice&SignatureNonce=8d6131cab4e6465d975ba65ba4d45aad&AccessKeyId=xMr9wgwXQLhv****65o03mcD&SignatureMethod=HMAC-SHA1&Timestamp=2024-11-17T09:41:41Z&ProductKey=dwwAsxAkOwT7xhIY&Signature=Gg4HDRr8kYn2R0mYDI5hwOvrJDI%3D
为构造API请求,您需要知道如何获取endpoint,以及如何拼接queryString
1.如何获取Endpoint
进入您的控制台。在菜单「开发配置」>>「云端 API」中获取
详细获取方法,参见获取Endpoint
2.如何构造query-string
根据http规范,query-string一般由一系列的键值对组成,键和值之间用=
连接,多个键值对之间用&
连接。例如,?name=John&age=30
,其中name
和age
是键,John
和30
是对应的键值。键和值都应该遵循 URL 编码规则,以确保特殊字符的正确传输。
键值对可以分为公共参数和接口参数
公共参数和接口参数不区分先后地拼接成完整的query-string
2.1.公共参数
顾名思义,公共参数跟接口无关,即每个API都需要使用的参数
名称 | 类型 | 是否必选 | 示例 | 描述 |
AccessKeyId | String | 是 | xMr9wgwXQLhv5AUa65o03mcD | 平台颁发给开发者的,用于调用接口的密钥ID,在控制台获取accessKey |
Signature | String | 是 | Gg4HDRr8kYn2R0mYDI5hwOvrJDI%3D | 签名结果。平台用于验证请求身份的安全机制。详细计算方法,请参见计算签名 |
SignatureMethod | String | 否 | HMAC-SHA1 | 目前仅支持HMAC-SHA1。不填默认HMAC-SHA1 |
Timestamp | String | 是 | 2024-11-17T09:41:41Z | 请求的时间戳。日期格式按照ISO8601标准表示,并需要使用UTC时间。格式为 例如,2024-11-17T09:41:41Z 平台会校验时间误差超过20分钟为不合法调用 |
SignatureNonce | String | 是 | 8d6131cab4e6465d975ba65ba4d45aad | 唯一随机数。用于防止网络重放攻击。用户在不同请求中要使用不同的随机数值。 |
2.2.接口参数
参见API列表
查询您想要调用的API列表
3.代码示例
java代码示例,帮助您理解如何构造API请求