# API操作

# 说明

API操作一般是用于程序或者二次开发调用,每个接口都需要根据配置文件中的AccessKeyIdAccessKeySecret根据一定的规则计算出来sig值并附带在请求中,每个接口都可以根据这个逻辑直接调用,接口之间没有调用关系依赖。
每个接口调用都需要拥有全部公共参数和接口私有参数才可以使用。

# 请求流程说明

  1. accesskeyidaccesskeysecretcmdtime根据字母顺序且全部小写用键值对的形式连接在一起用;分割,形成原始字符串。
  2. 用步骤1产生的原始字符串进行SHA1散列加密的到sig,并将sig转为大写。
  3. 在请求的时候除了接口的必要参数,还在请求体中带上cmdtimeaccesskeyidsig一起提交即可。

例:调用api/Room_Info接口
假设accesskeyid为"1",accesskeysecret值为"2",那么请求体如下:

  • Request:
method: POST
path: http://127.0.0.1:11419/api/Room_Info
"form-data":
{
   "time":1641149566,
   "cmd":"Room_Info",
   "sig":"566A322043B6217334BC15F4E6D18973D033AA4B",
   "accesskeyid":1
}

在这个请求中,用于计算sig的原始字符串就是accesskeyid=1;accesskeysecret=2;cmd=room_info;time=1641149566;

# 公共参数

参数名 格式 是否必须 解释
time int 请求发出时的UTC时间戳(注意是UTC时间不需要+8小时),单位为秒,和服务器时间300秒以内的为有效请求(如:1626508097)。
cmd string 请求的API接口的接口名称(如:Room_Info)。
sig string 其他变量排序后按照规则拼接过后使用SHA1散列加密后得到的签名,注意要全部转为大写。
accesskeyid int 用于加密字符串的验证KeyId,存在于配置文件中需要和accesskeysecret成对的使用。