# API调用说明


# API调用说明

接口名称:
···

接口说明:
···

请求地址:
···

请求方式:
GET/POST(HTTPS)

请求类型:
Content-Type: application/json

请求头:
···

请求参数:
···

返回参数:
···

请求示例:
···

返回示例:
···
  1. 接口名称:接口的名称

  2. 接口说明:接口的详细介绍

  3. 请求地址:接口的请求地址

  4. 请求方式:标明接口调用的HTTP方法,区分GET/POST请求。所有的请求都为HTTPS协议

  5. 请求类型:发送HTTP请求时需要选择的类型

  6. 请求头:发送HTTP请求时需要放在Headers里面的参数字段

  7. 请求参数:标明请求参数示例及说明

  8. 返回参数:标明返回参数示例及说明。所有接口的返回结果里都有state、msg、msgCN、msgEN。开发者需根据state是否为0判断是否调用成功(state意义可查看全局错误码)。msg、msgCN、msgEN仅作参考,后续可能会有变动,因此不可作为是否调用成功的判据

  9. 请求示例:POST请求时,会标明需要放在Body里的参数示例。所有的请求都会标明JavaSdk的调用示例

  10. 返回示例:标明返回示例

# 以哪种方式调用API

我们支持以下两种方式调用API:

  1. 使用HTTP请求调用
  2. 使用Java SDK调用(即将开放,敬请期待)

# HTTP请求示例

1.HTTP请求需在Headers头里包含以下字段:

token:调用获取Token获得。

corp-id:详见查看权限信息

xb-timestamp:时间戳,长整型。

xb-sign-method:加密方式,固定sha256。

xb-sign:见下文。

2.HTTP请求sign生成规则示例:

签名算法:固定sha256。

签名内容:由7部分组成,按顺序为:签名算法 + 请求类型(大写)+ accessKeyId + 时间戳(当前请求时间,长整型)+ 请求url(去掉域名及/符号)+ 请求体(get或post请求对应参数内容)+ accessKeySecret。

获取班级清单接口为例:

  • 签名算法:sha256
  • 请求类型:POST
  • accessKeyId:accessKeyId
  • 时间戳:1595229375367
  • 请求url:open-erpOpenApiGetClassList
  • 请求体:{"pageIndex":1,"pageSize":2,"schoolId":13957,"beginDate":"2021-04-01","endDate":"2021-04-30"}
  • accessKeySecret:accessKeySecret

根据以上内容,可拼接出加密前的字符串:

sha256POSTaccessKeyId1595229375367open-erpOpenApiGetClassList{"pageIndex":1,"pageSize":2,"schoolId":13957,"beginDate":"2021-04-01","endDate":"2021-04-30"}accessKeySecret

以sha256加密后:

7a26a679b9fe89e373804d6800d1f5b88a25e173fb587db901249db82ce26ce0

如果请求类型为POST,请求体则为body内的所有字符,需精简成json串

2.演示使用Postman请求班级清单接口:

Body示例

Header示例

# 关于Token持续时间

Token申请成功后,持续时间为2小时,持续时间内可重复使用。

# 关于接口调用频率限制

出于系统保护的考虑,我们对接口的调用做了频率限制。默认情况下,调用每个学校的接口都有一定的频率限制,当超过此限制时,调用对应接口会收到相应错误码。

以下是当前默认的频率限制,校宝教培管理系统后台可能会根据运营情况调整此阈值:

  • 调用每个学校的接口频率不可超过20次/秒,否则返回错误码9500