# 前言
数字中心 OpenAPI 是 FinClip 服务端的开放出来的一些核心链路的接口。允许您以编程方式与 FinClip 服务端交互。用于自动执行任务、与其他工具集成并创建自定义工作流程等
# 快速开始
- 在数字中心的个人中心中,选择创建 Personal Access Token
- 勾选当前 Token 需要具备的权限,并创建。注意:请妥善保存创建生成的 Access Token,后续无法找回,只能重置
- 选择下面任意的OpenAPI接口,在请求头嵌入Authorization 的 header,值为: Bearer {PersonalAccessToken}
- 注意:这个header是所有 OpenAPI 接口都需要传的参数
# 授权范围
授权范围是OpenAPI权限集
以下是具体的授权范围的说明
授权组 | 授权范围 | 说明 |
---|---|---|
用户 | 用户-查看 | 数字中心用户的查看 |
用户-编辑 | 邀请 & 移除数字中心用户 | |
角色-查看 | 查看系统中定义的角色及其权限 | |
角色-编辑 | 编辑角色权限及分配角色给成员 | |
生态 | 生态-查看 | 查看开发中心的组织 & 账号相关信息 |
生态-编辑 | 管理开发中心的组织 & 账号相关信息 | |
小程序 | 小程序-查看 | 查看小程序的基本信息 |
# API
以下的 OpenAPI 接口会以授权范围作为目录,只有拥有了该授权范围的 Personal Access Token 才可以访问具体的接口。
# 1. 通用接口
通用接口指不依赖任何授权范围的 OpenAPI,主要是一些用户账户相关的一些基础功能接口
# 1.1 获取菜单权限树
请求URL
GET /api/v1/open/oper/auth/tree
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 无
示例响应
{
"error": "",
"errcode": "OK",
"data": {
"permissionTree": { // 权限树
"childrenIds": [
""
],
"desc": "",
"exist": true,
"hasPermission": true,
"id": "",
"itemType": 1,
"name": "",
"parentId": ""
}
},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 2. 用户-查看
# 2.1 获取账号角色列表
请求URL
GET /api/v1/open/oper/account/role/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
accountId | string | |
pageNo | int | 页码。从1开始 |
pageSize | int | 每页数量 |
示例响应
{
"error": "",
"errcode": "OK",
"data": {
"items": {
"builtinRoleKey": "", // 内置角色的key,现有:admin,data_analyst,developer,super_admin 四种
"name": "", // 角色名称
"roleId": "" // 角色id
},
"total": 1
},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 2.2 获取账号列表
请求URL
GET /api/v1/open/oper/account/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
pageNo | int | 页码。从1开始 |
pageSize | int | 每页数量 |
keyword | string | 账号模糊搜索关键字 |
示例响应
{
"error": "",
"errcode": "OK",
"data": {
"accounts": {
"account": "", // 账户名
"accountId": "", // 账户id
"createTime": 1, // 创建时间
"email": "", // 邮箱
"phone": "", // 手机号
"status": 1 // 状态 1=启用 2=禁用
}
},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 3. 用户-编辑
# 3.1 账号绑定角色
备注 每次请求进来的都是全量的角色列表,会将旧的关系删除
请求URL
POST /api/v1/open/oper/account/role/binding
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
accountId | string | 账户id |
roleIds | string[] | 角色id列表 |
示例响应
{
"errcode": "",
"error": "",
"data": {},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 3.2 更新用户是否冻结状态
请求URL
POST /api/v1/open/oper/account/frozen/update
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
isFrozen | int | 是否冻结 1=否 2=是 |
operAccountId | string | 数字中心用户id |
示例响应
{
"errcode": "",
"error": "",
"data": {},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 3.3 重置密码
请求URL
POST /api/v1/open/oper/account/password/reset
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
accountId | string | 账户id |
password | string | 新密码 |
示例响应
{
"errcode": "",
"error": "",
"data": {},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 3.4 创建账号
请求URL
POST /api/v1/open/oper/account/create
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
phone | string | 手机号 |
roleIds | string[] | 绑定的角色id |
account | string | 账号名 |
areaCode | string | 手机区号,示例 +86 |
string | 邮箱 | |
password | string | 密码 |
示例响应
{
"error": "",
"errcode": "OK",
"data": {
"accountId": ""
},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 3.5 删除账号
请求URL
POST /api/v1/open/oper/account/delete
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
accountIds | string[] | 账户id |
示例响应
{
"errcode": "",
"error": "",
"data": {},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 4. 角色-查看
# 4.1 获取角色列表
请求URL
GET /api/v1/open/oper/role/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
pageNo | int | 页码。从1开始 |
pageSize | int | 每页数量 |
keyword | string | 角色名称模糊搜索关键字 |
示例响应
{
"errcode": "",
"error": "",
"data": {},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 4.2 获取角色下的账号列表
请求URL
GET /api/v1/open/oper/role/account/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
roleId | string | 角色id |
pageNo | int | 页码。从1开始 |
pageSize | int | 每页数量 |
示例响应
{
"error": "",
"errcode": "OK",
"data": {
"accounts": {
"account": "", // 账户名
"accountId": "", // 账户id
"createTime": 1, // 账户创建时间
"email": "", // 邮箱
"phone": "" // 手机号
},
"total": 1
},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 5. 角色-编辑
# 5.1 更新角色
请求URL
POST /api/v1/open/oper/role/update
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
idePermissionTree | map<string, object> | ide_权限树 |
permissionTree | map<string, object> | 权限树 |
roleId | string |
示例响应
{
"errcode": "",
"error": "",
"data": {},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 5.2 删除角色
请求URL
POST /api/v1/open/oper/role/delete
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
roleId | string | 角色id |
示例响应
{
"errcode": "",
"error": "",
"data": {},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 5.3 角色中移除账号
请求URL
POST /api/v1/open/oper/role/account/delete
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
accountIds | string[] | 成员id列表 |
roleId | string | 角色id |
示例响应
{
"errcode": "",
"error": "",
"data": {},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 5.4 创建角色
请求URL
POST /api/v1/open/oper/role/create
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
idePermissionTree | object | ide 权限树 |
permissionTree | object | 权限树 |
roleName | string | 角色名称 |
示例响应
{
"error": "",
"errcode": "OK",
"data": {
"roleId": ""
},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 5.5 绑定账号到角色
备注 每次请求进来的都是增量的成员列表,不会将旧的关系删除
请求URL
POST /api/v1/open/oper/role/account/binding
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
accountIds | string[] | 成员id列表 |
roleId | string | 角色id |
示例响应
{
"errcode": "",
"error": "",
"data": {},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 6. 生态-查看
# 6.1 获取开发端账号加入的组织列表
请求URL
GET /api/v1/open/oper/dev-account/ecology/organ/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
devAccountId | string | 账号id |
pageNo | int | 页码。从1开始 |
pageSize | int | 每页数量 |
示例响应
{
"error": "",
"errcode": "OK",
"data": {
"items": {
"organId": "",
"organName": "",
"reviewStatus": 1,
"role": ""
},
"total": 1
},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 6.2 获取开发端账号列表
请求URL
GET /api/v1/open/oper/dev-account/ecology/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
organId | string | 组织id的过滤 |
organName | string | 组织name的过滤 |
pageNo | int | 页码。从1开始 |
pageSize | int | 每页数量 |
search | string | 账户模糊搜索关键字 |
示例响应
{
"error": "",
"errcode": "OK",
"data": {
"items": {
"account": "",
"createTime": 1,
"devAccountId": "",
"email": "",
"organCount": 1,
"phone": ""
},
"total": 1
},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 6.3 获取开发端组织详情
请求URL
GET /api/v1/open/oper/organ/ecology/info
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
devOrganId | string | 组织id |
示例响应
{
"error": "",
"errcode": "OK",
"data": {
"access": true,
"applyTime": 1,
"devOrganAuditRecordId": "",
"enterpriseInfo": "",
"enterpriseName": "",
"enterpriseType": "",
"operReviewResult": 1,
"rejectReason": "",
"reviewerId": "",
"workflowNodeInstanceId": ""
},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 6.4 获取开发端组织列表
请求URL
GET /api/v1/open/oper/organ/ecology/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
enterpriseType | string | 已认证组织的子类型过滤 |
organName | string | 组织名称过滤 |
organReviewStatus | string | |
pageNo | int | 页码。从1开始 |
pageSize | int | 每页数量 |
type | int | 组织类型。1=未认证组织 2=已认证组织 |
示例响应
{
"error": "",
"errcode": "OK",
"data": {
"items": {
"applyPassTime": 1,
"createTime": 1,
"devOrganId": "",
"enterpriseType": "",
"name": "",
"reviewStatus": 1,
"type": 1
},
"total": 1
},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 7. 生态-编辑
# 7.1 -重置开发端账号密码
请求URL
POST /api/v1/open/oper/dev-account/ecology/reset/password
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
devAccountId | string | 账号id |
password | string | 密码 |
示例响应
{
"errcode": "",
"error": "",
"data": {},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 7.2 更新企业冻结状态
请求URL
POST /api/v1/open/oper/organ/ecology/frozen-status/update
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
devOrganId | string | 组织id |
isFrozen | int | 是否冻结 1=未冻结 2=已冻结 |
示例响应
{
"errcode": "",
"error": "",
"data": {},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 7.3 更新企业审核状态
请求URL
POST /api/v1/open/oper/organ/ecology/review-status/update
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
devOrganId | string | 组织id |
operReviewResult | int | |
rejectReason | string | 拒绝原因 |
workflowNodeInstanceId | string | 节点实例id |
示例响应
{
"errcode": "",
"error": "",
"data": {},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 7.4 添加开发中心成员账号
请求URL
POST /api/v1/open/oper/dev-account/ecology/create
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
account | string | 账户名 |
areaCode | string | 手机区号 |
string | 邮箱 | |
password | string | 密码 |
phone | string | 手机号 |
示例响应
{
"errcode": "",
"error": "",
"data": {},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 通用错误码
以下定义了一些接口之间通用的错误码字典,用于接口返回值判断和错误排查
errcode 错误码 | 描述 |
---|---|
OK | 成功 |
ECODE_PARAM_ERR | 参数错误。请求的入参不合法,检查请求入参 |
ECODE_UNAUTHORIZED | 未认证。无法识别到用户,检查当前的 PersonalAccessToken 是否正确 |
ECODE_FORBIDDEN | 未授权。当前的 PersonalAccessToken 的对应的权限,不足以访问当前正在访问的接口 |
ECODE_SERVER_ERR | 服务器内部错误。预期外的错误,请携带返回中的traceid向系统管理员反馈 |
ECODE_LICENSE_NOT_SUPPORT_OPEN_API_ERROR | 当前license不支持open-api功能,无法使用 |
OPEN_API_ACCESS_TOKEN_NOT_FOUND_ERR | 当前的 PersonalAccessToken 不存在 |
ECODE_PERSONAL_ACCESS_TOKEN_CROSS_PLATFORM_ERROR | 使用开发中心或者数字中心的 PersonalAccessToken ,访问另一端的接口。 |
ECODE_PERSONAL_ACCESS_TOKEN_OUT_OF_SCOPE | 无法识别到用户,检查当前的 PersonalAccessToken 是否正确 |
ECODE_PERSONAL_ACCESS_TOKEN_OUT_OF_SCOPE | 当前的 PersonalAccessToken 的对应的权限,不足以访问当前正在访问的接口 |