API 权限说明

签名认证

基于安全的考虑,私有的API需要对请求进行签名认证。认证所需要AppId , AppKey

访问限制

因为涉及到解析相关请求参数,目前暂只支持Get,Post(json数据格式)和Options的请求,后续更新业务需要做更多支持。

签名运算

参数 数据类型 说明
AppId string 应用的唯一标识,提供给第三方使用
AppKey string 公匙(相当于账号),提供给第三方使用
Sign string 签名(相当于密码)
Timestamp double 发起请求时的UTC标准时间戳,用于验证请求的时间有效性
  • 所有的请求参数必须带有AppId,Sign,Timestamp
  • AppId和AppKey必须是由Evos3.0授权发放的
  • 将请求参数和AppId、AppKey、Timestamp进行排序拼接,并使用MD5算法生成Sign
  • 将生成的Sign和AppId加入到请求参数中

签名示例

AppId=TestAppId, AppKey=TestKey

1. Get请求示例
  • 请求参数:
参数名 参数值
bkey value1
akey value2
  • 签名运算:
    1. 生成请求的时间戳:timestamp
      1583897306
      
    2. 将请求参数和appIdappkeytimestamp按参数名排序,并按照key=val&key=val…的格式拼接得到原始字符串:
      akey=value2&AppId=TestAppId&appKey=TestKey&bkey=value1&timestamp=1583897306
      
    3. 将上一步得到的字符串转为小写,并使用MD5签名生成sign字符串:
      字符串转为小写:
          akey=value2&appId=testappid&appkey=testkey&bkey=value1&timestamp=1583897306
      使用MD5签名:
          3D624021E05DAE2E761B47093DC136EE
      
    4. signappIdtimestamp加入请求参数,得到最终的请求url:
      /test?akey=value2&AppId=TestAppId&bkey=value1&timestamp=1583897306&sign=3D624021E05DAE2E761B47093DC136EE
      
2. Post请求示例
  • 请求参数:
    {
      "name": "name1",
      "value": "value1",
      "obj": {
          "prop1": "p1",
          "prop2": null
      },
      "items": [
          {
              "prop1": "prop1",
              "prop2": "prop2"
          }
      ]
    }
    
  • 签名运算:
    1. 生成请求的时间戳:timestamp
      1583897306
      
    2. 将请求数据转为key&value字典(复杂的属性直接用json格式表示):
      Key Value
      name name1
      value value1
      obj {“Prop1″:”p1″,”Prop2”:null}
      items [{“Prop1″:”prop1″,”Prop2″:”prop2”}]
    3. 将请求参数和appIdappkeytimestamp按参数名排序,并按照key=val&key=val…的格式拼接得到原始字符串:
      AppId=&AppKey=TestKey&Items=[{"Prop1":"prop1","Prop2":"prop2"}]&Name="name1"&Obj={"Prop1":"p1","Prop2":null}&Timestamp=&Value="value1"
      
    4. 将上一步得到的字符串转为小写,并使用MD5签名生成sign字符串:
      字符串转为小写:
          appid=&appkey=testkey&items=[{"prop1":"prop1","prop2":"prop2"}]&name="name1"&obj={"prop1":"p1","prop2":null}&timestamp=&value="value1"
      使用MD5签名:
          F998830B783F7FA71AF0B17AB0D0CC55
      
    5. signappIdtimestamp加入请求参数,得到最终的请求参数:
         {
             "name": "name1",
             "value": "value1",
             "obj": {
                 "prop1": "p1",
                 "prop2": null
             },
             "items": [
                 {
                     "prop1": "prop1",
                     "prop2": "prop2"
                 }
             ],
             "appId":"TestKey",
             "sign":"F998830B783F7FA71AF0B17AB0D0CC55",
             "timestamp":"1583897306",
         }
      

HTTP API

HTTP 请求格式说明

  • 对于GET请求,参数需要通过URL传递
  • 对于Post请求,Body必须使用Json格式传递数据
  • 请求参数必须包含appIdtimestamp 和数据签名sign

HTTP 返回参数说明

参数名 参数类型 描述
code int 返回码,0为请求成功
msg string 返回消息

Was this article helpful?

Related Articles

Leave A Comment?