十四、开放接口-伙伴集成

0. 开发前必读

基本概念

  • appId: 第三方应用 id,需要跟平台申请,可以操作一个或多个工作区的数据
  • appSecret: 第三方应用的密钥
  • accessToken: 请求令牌,有效期一天,过期前需要使用 refreshToken 刷新
  • refreshToken: 用于刷新 accessToken, 有效期为一个月,过期前需要通过 appId 和 appSecret 重新获取
  • grantType: 请求令牌类型(目前只支持 access token 类型的鉴权)
  • accountId: 帐号 id,系统内唯一的身份,跟工作区无关 (使用某一个用户身份处理业务时必传)
  • wsn: 工作区编码 (调用工作区内相关接口时必传)
  • 帐号: 整个 SaaS 系统内的唯一身份标识
  • 工作区: 用于存储某个租户的数据,工作区之间数据是隔离开的,互相访问不了
  • 用户: 一个帐号可以加入多个工作区,加入工作区之后就成为了工作区内的用户,具体业务是以用户身份开展的

特别说明

  • 基础路径:https://api.yidayun.com/openApi/

  • 通用的请求 body 结构说明:

{
    // 请求参数
    "params": {},
    // 当前环境上下文
    "context": {
        "tz": "时区,默认 GMT+8",
        "lang": "语言,默认 zh-CN"
    }
}
  • 统一的返回结果说明:
{
    // true 成功、false 失败
    "success": true,
    // 返回数据,可以是对象、数组、数字、字符串、布尔值等
    "data": {
        "total": 100,
        "list": []
    },
    // 错误码
    "errorCode": 1000,
    // 错误消息(显示给用户看的)
	"errorMessage": "xxxxx",
    // 错误信息展示方式 0 静默,不显示信息、1 警告、2 报错、4 提示、9 跳转 exception 页面
	"showType": 1,
    // 问题追踪的 id,用于问题查找
	"traceId": "xxxxx",
}
  • 其他说明:
  • 系统内的所有 id 长度较长,考虑到前端 js 精度问题,参数值使用字符串来传输,包括提交和返回

调用流程

  • 1、通过平台颁发的 appId 和 appSecret 换取 accessToken\refreshToken,接下来所有请求都要带 accessToken
  • 2、使用手机号创建用户帐号,会返回 account 信息,需要第三方应用自行维护本地帐号和 accountId 的关系
  • 3、使用 accountId 创建工作区,会返回工作区信息,并自动将帐号添加到当前工作区
  • 4、操作某个工作区的业务数据时,wsn(工作区编码)必传,accountId 根据特定接口需要来传输,表明是谁做的本次数据处理

1.身份验证

1.1 获取 accessToken

  • 详细描述:获取 access_token 令牌接口

  • 请求地址:https://api.yidayun.com/oauth/outside/accessToken?appId=param1&appSecret=param2&state=param3

  • 参数说明:

    参数参数名备注
    appId第三方获取的appId必填
    appSecret第三方获取的appSecret必填
    state返回的参数非必填
  • 请求方式:GET

  • 返回结果

{
    "success": true,
    "data": {
        "appId": "25cb3095e03f4d14adea4c347d793983",
        // 用作接口访问的 accessToken
        "accessToken": "6fae7818d50f4543ac8bb99be697db56",
        // 用作刷新的 refreshToken
        "refreshToken": "308688922656495eb47e1c19d56af961",
        // 过期时间 时间戳 超过这个时间将过期需要调用刷新接口或重新获取
        "expire": 1686125876003,
        // 令牌查询范围 scope_all
        "scope": "scope_all",
        // 令牌访问方式
        "grantType": "client_credentials",
        // 返回输入的数值
        "state": "xxxx"
    },
    "errorMessage": "",
    "errorCode": 0,
    "showType": 0,
    "traceId": null
}

1.2 刷新 accessToken

  • 详细描述:刷新 access_token 令牌接口

  • 请求地址:https://api.yidayun.com/oauth/outside/refreshToken?accessToken=param1&refreshToken=param2&state=param3

  • 参数说明:

    参数参数名备注
    accessToken接口访问的令牌必填
    refreshToken接口刷新的令牌必填
    state返回的参数非必填
  • 请求方式:GET

  • 返回结果

{
    "success": true,
    "data": {
        "appId": "25cb3095e03f4d14adea4c347d793983",
        // 用作接口访问的 accessToken
        "accessToken": "6fae7818d50f4543ac8bb99be697db56",
        // 用作刷新的 refreshToken
        "refreshToken": "308688922656495eb47e1c19d56af961",
        // 过期时间 时间戳 超过这个时间将过期需要调用刷新接口或重新获取
        "expire": 1686125876003,
        // 令牌查询范围 scope_all
        "scope": "scope_all",
        // 令牌访问方式
        "grantType": "client_credentials",
        // 返回输入的数值
        "state": "aa"
    },
    "errorMessage": "",
    "errorCode": 0,
    "showType": 0,
    "traceId": null
}

2. 账号管理

2.1 创建账号

  • 详细描述:通用方法,创建易搭云账号
  • 请求地址:/account/createAccount
  • 请求方式:POST
  • Header:
accessToken: 令牌
  • Body:
{
    "params": {
        // 注册电话或邮箱
        "account": "",
        // 注册名称
        "name": "",
        // 密码
        "password": ""
    },
    "context": {}
}
  • 返回结果:
{
    "success": true,
    "data":{
        // 唯一标识,主键
        "id": "",
        // 名称
        "name": "",
        // 手机号
        "phone":"",
        // 邮箱
        "email":""
    }
}

2.2 获取员工列表

  • 详细描述:通用方法,获取员工列表
  • 请求地址:/account/getUserList
  • 请求方式:POST
  • Header:
accessToken: 令牌
userId 工作区编码
externalId 
  • Body:

无入参

  • 返回结果:
{
    "success": true,
    "data":{
        // 列表总数
        "size": 1 ,
        // 工作区 number
        "workspaceNumber":"",
        // 用户列表
        "users": [
            {
                // 唯一标识 用户 id
                "id":"",
                // 账户 id
                "accountId":"",
                // 名称
                "name":"",
                // 用户 number
                "number":"",
                // 电话
                "phone":"",
                // 邮箱
                "email":"",
                // 部门名称
                "deptName":[
                    ""
                ],
                // 部门编码
                "deptNumber":[
                    ""
                ],
                // 员工状态名称
                "userStateName":"",
                // 员工状态
                "userStateNumber":""
            }
        ]
    }
}

2.3 根据电话获取账号信息

  • 详细描述:通用方法,根据电话获取账号信息
  • 请求地址:/account/getAccountByPhone
  • 请求方式:POST
  • Header:
accessToken: 令牌
  • Body:
{
    "params": {
        // 注册电话
        "phone": ""
    },
    "context": {}
}
  • 返回结果:
{
    "success": true,
    "data":{
        // 唯一标识,主键
        "id": "",
        // 名称
        "name": "",
        // 手机号
        "phone":"",
        // 邮箱
        "email":""
    }
}

3. 工作区管理

3.1创建工作区

  • 详细描述:通用方法,创建工作区
  • 请求地址:/workspace/createWorkspace
  • 请求方式:POST
  • Header:
accessToken: 令牌
accountId 账号id
  • Body:
{
    "params": {
        // 工作区名称
        "workspaceName": "",
        // 员工编码
        "userId" :""
    },
    "context": {}
}
  • 返回结果:
{
    "success": true,
    "data":{
        // 工作区名称
        "workspaceName": "",
        // 工作区编码
        "workspaceNumber":"",
    }
}

3.2创建员工

  • 详细描述:通用方法,创建员工
  • 请求地址:/workspace/createUser
  • 请求方式:POST
  • Header:
accessToken: 令牌
wsn 工作区编码
  • Body:
{
    "params": {
        // 注册电话或邮箱
        "account": "",
        // 注册名称
        "name": "",
        // 密码
        "password": "",
        // 员工编码
        "userId": ""
    },
    "context": {}
}
  • 返回结果:
{
    "success": true,
    "data":{
        // 员工编码
        "number": "",
        // 员工名称
        "name": "",
        // 员工电话
        "phone": "",
        // 员工邮箱
        "email": ""
    }
}

3.3获取工作区列表

  • 详细描述:通用方法,获取工作区列表
  • 请求地址:/workspace/getWorkspaceList
  • 请求方式:POST
  • Header:
accessToken: 令牌
  • Body:
{
    "params": {
        // 注册电话或邮箱
        "account": "",
        // 密码
        "password": ""
    },
    "context": {}
}
  • 返回结果:
{
    "success": true,
    "data":[
               {
                    // 工作区名称
                   "workspaceName": "",
                   // 工作区编码
                   "workspaceNumber": ""
               }
           ]
}

4. 元数据管理

4.1 获取对象结构

  • 详细描述:获取某个业务功能的完整对象结构
  • 请求地址:metadata/getObjectDetail
  • 请求方式:POST
  • Header:
// 令牌
accessToken: ""
// 工作区编码
wsn: ""
  • Body:
{
    "params": {
        // 业务功能 key
        "objectNumber": "",
    },
    "context": {}
}
  • 返回结果:
{
    "success": true,
    "data":{
        // 应用唯一标识
        "appNumber": "xxx",
        // 功能名称
        "name": "采购订单",
        // 功能唯一标识
        "number": "xxx",
        // 功能类型,基础资料 objectBase、表单 objectBill、报表 objectReport 等
        "objectType": "objectBase",
        // 特殊配置,暂时用不到
        "options": {},
        // 功能下的模型字典
        "modelMap": {
            // key 为表头或者表体模型的唯一标识
            // value 为模型的详细描述,参考 getModelDetail 接口返回值
            "xxxx": {}
        }
    }
}

4.2 获取模型结构

  • 详细描述:获取某个业务功能的某个模型的结构
  • 请求地址:metadata/getModelDetail
  • 请求方式:POST
  • Header:
// 令牌
accessToken: ""
// 工作区编码
wsn: ""
  • Body:
{
    "params": {
        // 模型唯一 key
        "modelNumber": "",
    },
    "context": {}
}
  • 返回结果:
{
    "success": true,
    "data":{
        // 功能唯一标识
        "objectNumber": "xxx",
        // 模型名称
        "name": "采购订单",
        // 模型唯一标识
        "number": "xxx",
        // 模型类型,表头 modelHeader、表体 modelEntry、子表体 modelSubEntry
        "modelType": "modelHeader",
        // 表体、子表体对应的父级模型的唯一标识
        "parentModelNumber": "xxx",
        // 当前模型上,用于关联父级模型的字段(例如:parentId)
        "parentIdDbName": "parentId",
        // 特殊配置,暂时用不到
        "options": {},
        // 层级 (header 1, 表体 2,子表体 3)
        "level": 1,
        // 模型上的字段字典
        "fieldMap": {
            // key 为数据库字段名
            // value 字段配置
            "xxxx": {
                // 字段显示名称
                "name": "采购订单",
                // 字段唯一标识,随机生成的
                "number": "xxx",
                // 数据库字段名,可自定义
                "dbName": "xxx",
                // 字段类型,表头 modelHeader、表体 modelEntry、子表体 modelSubEntry
                "fieldType": "modelHeader",
                // 字段描述
                "description": "xxx",
                // 字段组的主字段,比如物料的 id\name\number 是一组,则主字段为 id
                "mainFieldDbName": "id",
                // 表达的是当前这个字段的值是从哪个功能
                "relatedObjectNumber": "xxx",
                // 来源于哪个模型
                "relatedModelNumber": "xxxHeader",
                // 来源于哪个字段,常用的有 id\name\number
                "relatedFieldDbName": "id",
                // 字段长度
                "size": 0,
                // 是否必录,业务字段的动态必录不在这里
                "required": false,
                // 精度配置
                "precision": {},
                // 特殊配置,暂时用不到
                "options": {},
                // 下拉字段才需要的下拉选项
                "auxiliaryItemList": [
                    {
                        // 自动生成的选项唯一 key
                        "id": "xxx",
                        // 显示名称
                        "name": "黑色",
                        // 自定义的标识
                        "number": "xxx",
                        // 图标
                        "icon": "xxx",
                        // 颜色
                        "color": "xxx",
                        // 顺序
                        "seq": 0,
                    }
                ]
            }
        }
    }
}

4.3 获取用户操作权限

  • 详细描述:获取某个用户的所有表单操作权限
  • 请求地址:metadata/getPermissionList
  • 请求方式:GET
  • Header:
// 令牌
accessToken: ""
// 帐号 id 字符串
accountId: ""
// 工作区编码
wsn: ""
  • 返回结果:
{
  "success": true,
  "data": {
    // 功能编码
    "riz3bpnmbwu": [
      {
        // 菜单名称
        "name": "菜单权限",
        // 菜单编码
        "number": "hcdakkgxdh2",
        // 是否有权
        "flag": false
      },
      {
        // 按钮名称
        "name": "创建",
        // 按钮事件编号
        "number": "create",
        // 是否有权
        "flag": false
      },
      {
        "name": "编辑",
        "number": "edit",
        "flag": false
      },
      {
        "name": "提交",
        "number": "submit",
        "flag": false
      },
      {
        "name": "撤销",
        "number": "revoke",
        "flag": false
      },
      {
        "name": "删除",
        "number": "delete",
        "flag": false
      },
      {
        "name": "导入",
        "number": "import",
        "flag": false
      },
      {
        "name": "导出",
        "number": "export",
        "flag": false
      },
      {
        "name": "暂存",
        "number": "hold",
        "flag": false
      },
      {
        "name": "自定义",
        "number": "g9ae7y6m76z",
        "flag": false
      }
    ]
  }
}

4.4 操作权限校验

  • 详细描述:对某个用户的操作权限进行校验
  • 请求地址:metadata/checkPermission
  • 请求方式:POST
  • Header:
// 令牌
accessToken: ""
// 帐号 id 字符串
accountId: ""
// 工作区编码
wsn: ""
  • Body:
{
  "params": {
    // 功能唯一标识
    "objectNumber": "cnn6vf3c7ah",
    // 按钮事件编码
    // 创建 对应 create   编辑 对应 edit     提交 对应 submit
    // 导入 对应 import   导出 对应 export   暂存 对应 hold
    "operateNumber": "create"
  },
  "context": {}
}
  • 返回结果:
{
  "success": true,
  // 有无权限
  "data": true
}

5. 业务数据管理

5.1 获取数据详情

  • 详细描述:通用方法,获取某个业务功能的某条数据详情
    • 不传用户信息表示有权查看,传了则按照数据权限进行处理
  • 请求地址:runtime/getDetail
  • 请求方式:POST
  • Header:
// 令牌
accessToken: ""
// 帐号 id 字符串
accountId: ""
// 工作区编码
wsn: ""
  • Body:
{
    "params": {
        // 业务功能 key
        "objectNumber": "",
        // 业务数据 id,防止前端精度丢失,使用字符串接收
        "id": "1580815145323565056"
    },
    "context": {}
}
  • 返回结果:
{
    "success": true,
    "data":{
        // 唯一标识
        "id": "1580815145323565056",
        // key 为表头上的数据库字段名
        // value 为对应值,可以是数字、字符串、布尔、列表、对象等
        "xxx": "xxx",
        // 表头上的第一个表体的字段名,值为列表对象
        "f_entry1": [
            // 一个对象为表体行数据
            {
                // 唯一标识
                "id": "1580815145323565056",
                // key 为表体数据库字段名,value 为对应值
                "xxx": "xxx",
                // 表体里嵌套的一个子表体,暂不支持
                "f_subentry1": [
                    {
                        "id": "1580815145323565056",
                        "xxx": "xxx",
                    }
                ]
            }
        ],
        // 表头上的第二个表体的字段名,值为列表对象
        "f_entry2": [
            {
                "id": "1580815145323565056",
                "xxx": "xxx",
            }
        ]
    }
}

5.2 获取数据列表

  • 详细描述:通用方法,获取某个业务功能的数据列表
    • 暂不支持查表体
    • 不传用户信息表示拉取全部,传了则按照数据权限进行处理
  • 请求地址:runtime/getList
  • 请求方式:POST
  • Header:
// 令牌
accessToken: ""
// 帐号 id 字符串
accountId: ""
// 工作区编码
wsn: ""
  • Body:
{
    "params": {
        // 业务功能 key
        "objectNumber": "",
        // 当前页码
        "page": 1,
        // 每页行数
        "size": 100,
        // 过滤条件,还未处理完
        "filter": {},
        // 排序条件
        "sort": [
            {
                // 字段名
               "field": "",
               // 查询哪个模型,表头、表体、子表体的模型
               "modelNumber": "",
               // 排序方式 desc\asc
               "order": "asc"
            }
        ]
    },
    "context": {}
}
  • 返回结果:
{
    "success": true,
    "data":{
        // 总行数
        "total": 100,
        // 表头上的第一个表体的字段名,值为列表对象
        "records": [
            // 一个对象为一条业务数据
            {
                // key 为表头数据库字段名,value 为对应值
                "xxx": "xxx",
            }
        ]
    }
}

5.3 暂存 (不包含提交)

  • 详细描述:通用方法,暂存某个业务功能的表单
    • 暂存不做任何校验
    • 编辑时可以部分提交,会先从系统中取出跟现有的数据进行合并,执行字段规则后更新入库
    • 不传用户信息表示有权,传了则按照数据权限进行处理
  • 请求地址:runtime/hold
  • 请求方式:POST
  • Header:
// 令牌
accessToken: ""
// 帐号 id 字符串
accountId: ""
// 工作区编码
wsn: ""
  • Body:
{
    "params": {
        // 业务功能 key
        "objectNumber": "",
        // 表单数据,参考 getDetail 返回结果
        "data": {
            // 唯一标识,新增数据时不用传,会自动生成,编辑时必传
            "id": "1580815145323565056",
            // key 为表头上的数据库字段名
            // value 可以是数字、字符串、布尔、列表、对象等
            "xxx": "xxxx",
            // 表体,可以有多个表体,暂不支持子表体
            "f_entry1": [
                {
                    // 删除行时必填,值为 delete
                    "command": "",
                    // 唯一标识,新增行时不用传,会自动生成,更新\删除时必传
                    "id": "1580815145323565056",
                    // key 为表体上的数据库字段名
                    // value 可以是数字、字符串、布尔、列表、对象等
                    "xxx": "xxxx"
                }
            ]
        },
    },
    "context": {}
}
  • 返回结果:
{
    "success": true,
    "data":{
        // 表单数据
        "data": {}
    }
}

5.4 更新 (不包含提交)

  • 详细描述:通用方法,更新某个业务功能的某条数据
    • 与暂存不同,会走必录校验和执行相关的事件节点
    • 可以部分提交,会先从系统中取出跟现有的数据进行合并,执行字段规则后更新入库
    • 不传用户信息表示有权,传了则按照数据权限进行处理
  • 请求地址:runtime/update
  • 请求方式:POST
  • Header:
// 令牌
accessToken: ""
// 帐号 id 字符串
accountId: ""
// 工作区编码
wsn: ""
  • Body:
{
    "params": {
        // 业务功能 key
        "objectNumber": "",
        // 表单数据,参考 getDetail 返回结果
        "data": {
            // 唯一标识,必传
            "id": "1580815145323565056",
            // key 为表头上的数据库字段名
            // value 可以是数字、字符串、布尔、列表、对象等
            "xxx": "xxxx",
            // 表体,可以有多个表体,暂不支持子表体
            "f_entry1": [
                {
                    // 删除行时必填,值为 delete
                    "command": "",
                    // 唯一标识,新增行时不用传,会自动生成,更新\删除时必传
                    "id": "1580815145323565056",
                    // key 为表体上的数据库字段名
                    // value 可以是数字、字符串、布尔、列表、对象等
                    "xxx": "xxxx"
                }
            ]
        },
        // 弹出预警提醒框时,在点击确定后继续执行时需要提交的参数
        // 值来源于上一次 save 的结果
        "warningKey": "xxxx"
    },
    "context": {}
}
  • 返回结果:
{
    "success": true,
    "data":{
        // 表单数据
        "data": {},
        // 弹出预警提醒框时,在点击确定后继续执行时需要提交的参数,暂不支持
        "warningKey": "xxxx"
    }
}

5.5 暂存(或更新)且提交

  • 详细描述:通用方法,暂存(或更新)且提交某个业务功能表单
    • 不传用户信息表示有权,传了则按照数据权限进行处理
    • 如果不符合提交控制,则有可能会报错,例如:执行中的流程不能重复提交
  • 请求地址:runtime/saveAndSubmit
  • 请求方式:POST
  • Header:
// 令牌
accessToken: ""
// 帐号 id 字符串
accountId: ""
// 工作区编码
wsn: ""
  • Body:
{
    "params": {
        // 业务功能 key
        "objectNumber": "",
        // 表单数据,参考 getDetail 返回结果
        "data": {
            // 唯一标识,新增数据时不用传,会自动生成,编辑时必传
            "id": "1580815145323565056",
            // key 为表头上的数据库字段名
            // value 可以是数字、字符串、布尔、列表、对象等
            "xxx": "xxxx",
            // 表体,可以有多个表体,暂不支持子表体
            "f_entry1": [
                {
                    // 删除行时必填,值为 delete
                    "command": "",
                    // 唯一标识,新增行时不用传,会自动生成,更新\删除时必传
                    "id": "1580815145323565056",
                    // key 为表体上的数据库字段名
                    // value 可以是数字、字符串、布尔、列表、对象等
                    "xxx": "xxxx"
                }
            ]
        },
        // 弹出预警提醒框时,在点击确定后继续执行时需要提交的参数
        // 值来源于上一次 save 的结果
        "warningKey": "xxxx"
    },
    "context": {}
}
  • 返回结果:
{
    "success": true,
    "data":{
        // 表单数据
        "data": {},
        // 弹出预警提醒框时,在点击确定后继续执行时需要提交的参数,暂不支持
        "warningKey": "xxxx"
    }
}

5.6 删除

  • 详细描述:通用方法,删除某个业务功能的某几条数据
    • 不传用户信息表示有权,传了则按照数据权限进行处理
  • 请求地址:runtime/delete
  • 请求方式:POST
  • Header:
// 令牌
accessToken: ""
// 帐号 id 字符串
accountId: ""
// 工作区编码
wsn: ""
  • Body:
{
    "params": {
        // 业务功能 key
        "objectNumber": "",
        // 待处理的表单唯一标识
        "ids": [],
        // 弹出预警提醒框时,在点击确定后继续执行时需要提交的参数
        // 值来源于上一次 save 的结果
        "warningKey": "xxxx"
    },
    "context": {}
}
  • 返回结果:
{
    "success": true,
    "data":{
        // 每条数据的操作结果
        "result": [
            {
                // 待处理的表单 id
                "id": "",
                // 此条数据操作结果,成功或者失败
                "success": true,
                // 错误码
                "code": 0,
                // 成功或错误的消息
                "msg": ""
            }
        ],
        // 弹出预警提醒框时,在点击确定后继续执行时需要提交的参数,暂不支持
        "warningKey": "xxxx"
    }
}

5.7 提交

  • 详细描述:通用方法,提交某个业务功能的某几条数据
    • 不传用户信息表示有权,传了则按照数据权限进行处理
  • 请求地址:runtime/submit
  • 请求方式:POST
  • Header:
// 令牌
accessToken: ""
// 帐号 id 字符串
accountId: ""
// 工作区编码
wsn: ""
  • Body:
{
    "params": {
        // 业务功能 key
        "objectNumber": "",
        // 待处理的表单唯一标识
        "ids": [],
        // 弹出预警提醒框时,在点击确定后继续执行时需要提交的参数
        // 值来源于上一次 submit 的结果
        "warningKey": "xxxx"
    },
    "context": {}
}
  • 返回结果:
{
    "success": true,
    "data":{
        // 每条数据的操作结果
        "result": [
            {
                // 待处理的表单 id
                "id": "",
                // 此条数据操作结果,成功或者失败
                "success": true,
                // 错误码
                "code": 0,
                // 成功或错误的消息
                "msg": ""
            }
        ],
        // 弹出预警提醒框时,在点击确定后继续执行时需要提交的参数,暂不支持
        "warningKey": "xxxx"
    }
}

5.8 撤销

  • 详细描述:通用方法,撤销某个业务功能的某几条数据
    • 不传用户信息表示有权,传了则按照数据权限进行处理
  • 请求地址:runtime/revoke
  • 请求方式:POST
  • Header:
// 令牌
accessToken: ""
// 帐号 id 字符串
accountId: ""
// 工作区编码
wsn: ""
  • Body:
{
    "params": {
        // 业务功能 key
        "objectNumber": "",
        // 待处理的表单唯一标识
        "ids": [],
        // 弹出预警提醒框时,在点击确定后继续执行时需要提交的参数
        // 值来源于上一次 revoke 的结果
        "warningKey": "xxxx",
    },
    "context": {}
}
  • 返回结果:
{
    "success": true,
    "data":{
        // 每条数据的操作结果
        "result": [
            {
                // 待处理的表单 id
                "id": "",
                // 此条数据操作结果,成功或者失败
                "success": true,
                // 错误码
                "code": 0,
                // 成功或错误的消息
                "msg": ""
            }
        ],
        // 弹出预警提醒框时,在点击确定后继续执行时需要提交的参数,暂不支持
        "warningKey": "xxxx"
    }
}

6. OSS 文件

6.1 附件上传

  • 详细描述:单据附件字段对应文件上传
  • 请求地址:oss/uploadAttachment
  • 请求方式:POST
  • Header:
// 令牌
accessToken: ""
// 帐号 id 字符串
accountId: ""
// 工作区编码
wsn: ""
  • Body:
{
    // 文件
    "file": "",
    // 组件类型
    // 图片组件 image 附件组件 attachment
    "fileCategoryKey": "attachment"
}
  • 返回结果:
{
  "success": true,
  "data": {
    // 文件伪地址
    "dummyUrl": "Minio-attachment://1632982566912049152ce36fk",
    // 前缀
    "prefix": "Minio",
    // 文件桶名称
    "bucketName": "attachment",
    // 文件key
    "fileKey": null,
    // 文件预览URL
    "fileUrlList": [
      "https://oss.dev.renxiaoyun.com/attachment/1632982566912049152ce36fk?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20230307%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230307T055238Z&X-Amz-Expires=259200&X-Amz-SignedHeaders=host&X-Amz-Signature=adfdf96cc8537102542865f409257dcd7cd90e6d76d1c160db03b03f46651133"
    ],
    // 文件名称
    "fileName": "test.jpg",
    // 文件大小
    "size": 601865,
    // 文件contentType
    "contentType": "image/jpeg",
    // 文件类型
    "fileType": "jpg"
  },
  "errorMessage": "",
  "errorCode": 0,
  "showType": 0,
  "traceId": "buca798pap55qwv"
}

6.2 附件下载

  • 详细描述:附件下载
  • 请求地址:oss/downloadFile
  • 请求方式:GET
  • Header:
// 令牌
accessToken: ""
// 帐号 id 字符串
accountId: ""
// 工作区编码
wsn: ""
  • Body:
{
    // 文件伪地址
    "dummyUrl": "Minio-attachment://1632982566912049152ce36fk"
}
  • 返回结果: 文件
Last Updated:
Contributors: owen, 钟瑞琪, zhangzelin