REBUILD API 使用

基础知识

RB API 基于 HTTP 调用(RESTful),通过 JSON 数据进行交互。具备跨语言、安全可控、高灵活度等特性,支持主动与被动式接口调用。

数据返回格式

数据统一采用 JSON 数据格式返回,示例如下:

{
  error_code: 0
  error_msg: "调用成功"
  data: xxx
}

其中,error_code 为错误码。error_msg为错误描述。data 为请求返回数据(如有)。

错误码

  • 0 - 调用成功
  • 4xx - 业务失败。参数错误或违反数据/业务规则,具体可参考 error_msg
  • 5xx - 系统错误。请联系接口提供方

公共请求参数

公共请求参数是每次请求所必须携带的参数,用于 API 鉴权。

参数 说明
appid APP ID(见下文 创建 API 账户)
timestamp 时间戳,精确到秒。客户端/服务器时间偏差允许正负 15 秒
sign_type 签名类型,可选 MD5SHA1
sign 加密签名

授权方式

RB API 支持基于加密签名的授权方式。将请求参数通过固定的方式组装并加密,形成加密签名,并在请求时携带。其适用于安全要求较高的应用。

加密方法和规则

  1. 将所有提交的参数(不含 POSTsign 参数)按字段升序(A-Z)排列
  2. 将排序后的参数进行组装,形式如 key1=value1&key2=value2,最后拼接 &APP_ID.APP_SECRET
  3. 将组装好的参数进行 MD5 或 SHA 加密得到加密签名
  4. 将签名(sign)拼接到请求 URL 中

设有请求参数 page_no2,那么其组装加密步骤如下:

// APP_ID = 999999999
// APP_SECRET = hRwXFvykcmD6MofNOHOzaMSuaB6U76P077ZT8ZFj

// 1. 组装参数得到
appid=999999999&page_no=2&sign_type=MD5&timestamp=1602772338&999999999.hRwXFvykcmD6MofNOHOzaMSuaB6U76P077ZT8ZFj

// 2. 对步骤1得到的字符进行 MD5 加密得到
2356574a32b680514bd3b38e4b0cd960

// 3. 拼接 sign 参数最终得到
appid=999999999&page_no=2&sign_type=MD5&timestamp=1602772338&sign=2356574a32b680514bd3b38e4b0cd960

我们提供了一个 Java 版本的实现供你参考 OpenApiSDK

开始使用

创建 API 账户

进入管理员后台 - API 秘钥,点击右上角 [添加] 来新建一个 API 访问账户。添加后你将得到一对访问秘钥,即 API ID 与 API SECRET。

? 请特别注意 绑定用户 字段,接口所能使用到的权限与绑定用户相符,同时其也在调用上下文中作为操作用户使用。同时注意保密 APP SECRET 参数,一旦泄漏请立即删除使其无效。

调用接口

RB API 的基础调用 URL 为 http://your-rb-server/gw/api/,例如获取服务器时间的完整调用 URL 为:

http://your-rb-server/gw/api/system-time?appid=999999999&sign_type=MD5&timestamp=1602752048&sign=840d6ee50ef013e545b543fa63cce860

我们提供了一个 Java 版本的实现供你参考 OpenApiSDK

可用 API 列表

  • system-time - 获取服务器时间
  • metadata/entities - 获取元数据实体列表
  • metadata/fields - 获取元数据字段列表
  • metadata/classification-data - 获取分类数据值
  • metadata/picklist-data - 获取下拉列表数据值
  • metadata/multiselect-data - 获取多选数据值
  • entity/create - 新建记录
  • entity/update - 更新记录
  • entity/delete - 删除记录
  • entity/get - 获取单条记录
  • entity/list - 获取多条记录(可用于搜索)

被动式接口

被动式接口通过 Redis 队列的 订阅-发布 实现,第三方系统可以订阅数据事件,当数据变化时第三方系统可以即时接收事件(并执行相应动作)。

关于如何订阅 Redis 队列事件,请参考第三方相关文档。

被动式接口为增值功能,具体使用方式请与我们联系。

编辑更新时间 11/16/2020, 1:07:32 AM