Appearance
MetaAPI
MetaAPI是基于HTTP调用的后台接口,通过JSON数据进行交互。您可以通过MetaAPI对美乐低代码中的数据进行操作,以此实现各种个性化的业务需求。
基础知识
- MetaAPI所有的接口都有统一的返回格式
| 参数 | 类型 | 说明 |
|---|---|---|
| code | Int | 状态码 (成功:0,失败:500) |
| message | String | 状态值 |
| error | String | 错误描述 |
| data | Object | 返回数据 |
鉴权加密
MetaAPI所有的接口都是基于加密签名的方式做授权处理的,需要在请求头中携带鉴权参数:
请求头参数
| 参数 | 类型 | 说明 |
|---|---|---|
| appid | String | |
| timestamp | String | 时间戳 |
| sign | String | 签名 |
签名规则
- 将body转为base64字符串 (接口入参没有body可以忽略这一步)
- 将form参数 + body的base64字符串(没有则忽略) + appId + appSecret 按字典顺序排序并通过 & 拼接
- 将生成的字符串进行32位MD5加密
签名示例
以编辑接口为例,编辑需要的接口参数如下
json
URL: /metaApi/saveRecord?entityName=DemoCompany&recordId=0000122-08af1452c4be40049d880dc0ed28e8a5
body: {"shortName":"极昇数科"}- 将body转为base64字符串。生成结果如下
eyJzaG9ydE5hbWUiOiLmnoHmmIfmlbDnp5EifQ==- 将form参数 + body转base64 + appId + appSecret 按字典顺序排序并通过 & 拼接。生成结果如下
appId=6657168576&appSecret=pdmiajwib9boha8a9vpf6osyt9yr0qddky6jdjxl&body=eyJzaG9ydE5hbWUiOiLmnoHmmIfmlbDnp5EifQ==&entityName=DemoCompany&recordId=0000122-08af1452c4be40049d880dc0ed28e8a5×tamp=1708415950852- 将生成的字符串进行MD5加密,生成sign。生成结果如下
39057bee11a07fefd91a452a0071fdcb接口清单
查看多条数据
请求方式
- 请求地址:/metaApi/listQuery
- 请求方式:POST
Body参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| mainEntity | String | 必填 | 实体name |
| fieldsList | String | 必填 | 查询字段 |
| quickFilter | String | 快速搜索(根据 实体-列表设计-快速搜索字段 中设置的字段去模糊匹配) | |
| filter | Object | 筛选条件 | |
| pageSize | Int | 必填 | 分页长度 |
| pageNo | Int | 必填 | 当前页数 |
| sortFields | List | 排序字段 |
请求示例
json
URL: /metaApi/listQuery
body:
{
"mainEntity": "Company",
"fieldsList": "companyName,companyType",
"quickFilter": "有限公司",
"filter": {
"equation": "OR",
"items": [
{
"fieldName": "companyName",
"op": "LK",
"value": "极昇",
"value2": ""
}
]
},
"pageSize": 20,
"pageNo": 1,
"sortFields": [
{
"type": "ASC",
"fieldName": "createdOn"
}
]
}返回结果
json
{
"code": 200,
"error": null,
"message": "success",
"data": {
"dataList": [
{
"companyId": "0000122-e160317fe5964c146619bd587d4be744",
"companyName": "上海极昇数科数据技术有限公司",
"companyType": "有限公司"
}
],
"pagination": {
"pageSize": 20,
"pageNo": 1,
"total": 1
}
}
}查看单条数据
请求方式
- 请求地址:/metaApi/queryById
- 请求方式:GET
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| recordId | String | 记录Id |
| fieldNames | String | 需要查询的字段 |
请求示例
json
URL: /metaApi/queryById?recordId=0000122-e160317fe5964c146619bd587d4be744&fieldNames=companyName,companyType返回结果
json
{
"code": 200,
"error": null,
"message": "success",
"data": {
"companyId": "0000122-e160317fe5964c146619bd587d4be744",
"companyName": "上海极昇数科数据技术有限公司",
"companyType": "有限公司"
}
}新增和编辑数据
请求方式
- 请求地址:/metaApi/saveRecord
- 请求方式:POST
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| entityName | String | 实体名称 |
| recordId | String | 记录Id (存在则是编辑,不存在则是新建) |
| <body> | JSON | 需要修改的字段值 |
请求示例
json
URL: /metaApi/saveRecord?entityName=Company&recordId=0000122-e160317fe5964c146619bd587d4be744
body:
{
"companyName":"上海极昇数科数据技术有限公司",
"companyType":"有限公司"
}返回结果
json
{
"code": 200,
"error": null,
"message": "success",
"data": {
"formData": {
"companyId": "0000122-e160317fe5964c146619bd587d4be744",
"companyName": "上海极昇数科数据技术有限公司",
"companyType": "有限公司",
"createdOn": "2024-01-23 15:55:19",
"modifiedOn": "2024-02-20 13:22:27",
"ownerUser": "0000021-00000000000000000000000000000001",
"gongjijinzhanghao": "175485689215475385",
"modifiedBy": "0000021-00000000000000000000000000000001",
"ownerDepartment": "0000022-00000000000000000000000000000001",
"createdBy": "0000021-00000000000000000000000000000001"
}
}
}删除数据
请求方式
- 请求地址:/metaApi/deleteRecord
- 请求方式:POST
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| <body> | JSON | 数据体 |
body格式:
json
{
"recordIds":["id1","id2"],//要删除的实体Id集合,只能传入同一个实体的数据Id
"cascades":["entityName1","entityName2"] //需要级联删除的实体名称
}请求示例
json
URL: /metaApi/deleteRecord
body:
{
"recordIds":["0000122-e160317fe5964c146619bd587d4be744"]
}返回结果
json
{
"code": 200,
"error": null,
"message": "success"
}获取loginToken
请求方式
- 请求地址:/metaApi/getLoginToken
- 请求方式:GET
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| userId | String | 最终需要登录的用户id(非必填) |
注意:只有appId绑定的是管理员账号才可以获取指定用户的loginToken,其他用户只能获取自己的loginToken
请求示例
json
URL: /metaApi/getLoginToken?userId=0000021-00000000000000000000000000000001返回结果
json
{
"code": 200,
"error": null,
"message": "success",
"data": "获取到的token"
}使用方式
前端跳转到任意页面,在路径后面带上参数 loginToken=获取到的token
例:http://低代码地址/web/dashboard?loginToken=获取到的token
新增和编辑用户
请求方式
- 请求地址:/metaApi/saveUser
- 请求方式:POST
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| recordId | String | 用户Id (存在则是编辑,不存在则是新建) |
| <body> | JSON | 需要修改的字段值 |
<body>参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| userName | String | 新建必填 | 用户名称 |
| loginName | String | 新建必填 | 登录名 |
| loginPwd | String | 新建必填 | 登录密码 (加密存储,加密规则咨询客服) |
| departmentId | String | 新建必填 | 部门ID |
| disabled | Boolean | 新建必填 | 是否禁用 |
| mobilePhone | String | 手机号 | |
| String | 邮箱 | ||
| jobTitle | Int | 职务code | |
| roles | Array | 权限Id数组 | |
| ownerTeam | Array | 团队Id数组 | |
| displayOrder | int | 排序字段 |
请求示例
json
URL: /metaApi/saveUser?recordId=0000122-e160317fe5964c146619bd587d4be744
body:
{
"userName":"张三",
"loginName":"张三",
"loginPwd":"81748744373808fd47f0baa60ab4b0dd",
"departmentId":"0000022-00000000000000000000000000000001",
"disabled":false,
"mobilePhone":"15211111111",
"email":"15211111111@163.com",
"jobTitle":1,
"roles":["0000023-00000000000000000000000000000001"],
"ownerTeam":["0000024-472fd8bf607145f7946439a2e0612d29"],
"displayOrder":0
}返回结果
json
{
"code": 200,
"error": null,
"message": "success",
"data": {
"formData": {
"userId": "0000122-e160317fe5964c146619bd587d4be744",
"userName": "张三",
.....
}
}
}新增和编辑部门
请求方式
- 请求地址:/metaApi/saveDepartment
- 请求方式:POST
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| recordId | String | 部门Id (存在则是编辑,不存在则是新建) |
| <body> | JSON | 需要修改的字段值 |
<body>参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| departmentName | String | 新建必填 | 部门名称 |
| parentDepartmentId | String | 新建必填 | 上级部门 |
| description | String | 部门说明 | |
| departmentOwnerUser | String | 部门负责人 | |
| displayOrder | int | 排序字段 |
请求示例
json
URL: /metaApi/saveDepartment?recordId=0000022-b20e0a1d5df94a4aa214f6d12ce19559
body:
{
"departmentName":"销售部",
"parentDepartmentId":"0000022-00000000000000000000000000000001",
"description":"销售部门",
"departmentOwnerUser":"0000021-00000000000000000000000000000001",
"displayOrder":0
}返回结果
json
{
"code": 200,
"error": null,
"message": "success",
"data": {
"formData": {
"userId": "0000022-b20e0a1d5df94a4aa214f6d12ce19559",
"departmentName": "销售部",
.....
}
}
}设置字典单选项
请求方式
- 请求地址:/metaApi/saveOptionItems
- 请求方式:POST
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| entityName | String | 实体名称 |
| fieldName | String | 字段名称 |
| <body> | Array | 单选项的值 |
<body>参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| label | String | 必填 | 展示名称 |
| value | String | 必填 | value |
注意:该接口并非新增编辑字典选项,为设置字典选项!调用后会覆盖原来的字典选项,请根据业务需求谨慎操作。
请求示例
json
URL: /metaApi/saveOptionItems?entity=User&field=jobTitle
body:
[
{
"saved": true,
"label": "总监",
"value": 4
},
{
"saved": true,
"label": "劳动人民",
"value": 6
},
{
"saved": true,
"label": "主管",
"value": 2
},
{
"saved": true,
"label": "经理",
"value": 3
}
]返回结果
json
{
"code": 200,
"error": null,
"message": "success",
"data": true
}获取字典单选项
请求方式
- 请求地址:/metaApi/getOptionItems
- 请求方式:GET
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| entityName | String | 实体名称 |
| fieldName | String | 字段名称 |
请求示例
json
URL: /metaApi/getOptionItems?entity=User&field=jobTitle返回结果
json
{
"code": 200,
"error": null,
"message": "success",
"data": [
{
"saved": true,
"label": "总监",
"value": 4
},
{
"saved": true,
"label": "劳动人民",
"value": 6
},
{
"saved": true,
"label": "主管",
"value": 2
},
{
"saved": true,
"label": "经理",
"value": 3
}
]
}设置字典多选项
请求方式
- 请求地址:/metaApi/saveTagItems
- 请求方式:POST
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| entityName | String | 实体名称 |
| fieldName | String | 字段名称 |
| <body> | Array | 单选项的值 |
<body>参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| label | String | 必填 | 展示名称 |
| value | String | 必填 | value |
注意:该接口并非新增编辑字典选项,为设置字典选项!调用后会覆盖原来的字典选项,请根据业务需求谨慎操作。
请求示例
json
URL: /metaApi/saveTagItems?entity=TodoTask&field=remindType
body:
[
{
"saved": true,
"label": "通知",
"value": "通知"
},
{
"saved": true,
"label": "邮件",
"value": "邮件"
},
{
"saved": true,
"label": "短信",
"value": "短信"
}
]返回结果
json
{
"code": 200,
"error": null,
"message": "success",
"data": true
}获取字典多选项
请求方式
- 请求地址:/metaApi/getTagItems
- 请求方式:GET
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| entityName | String | 实体名称 |
| fieldName | String | 字段名称 |
请求示例
json
URL: /metaApi/getTagItems?entity=TodoTask&field=remindType返回结果
json
{
"code": 200,
"error": null,
"message": "success",
"data": [
{
"saved": true,
"label": "通知",
"value": "通知"
},
{
"saved": true,
"label": "邮件",
"value": "邮件"
},
{
"saved": true,
"label": "短信",
"value": "短信"
}
]
}