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 | 必填 | 实体Code |
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": "短信"
}
]
}