Skip to content
加入微信交流群
微信交流群二维码

MetaAPI

   MetaAPI是基于HTTP调用的后台接口,通过JSON数据进行交互。您可以通过MetaAPI对美乐低代码中的数据进行操作,以此实现各种个性化的业务需求。

基础知识

  1. MetaAPI所有的接口都有统一的返回格式
参数类型说明
codeInt状态码 (成功:0,失败:500)
messageString状态值
errorString错误描述
dataObject返回数据

鉴权加密

MetaAPI所有的接口都是基于加密签名的方式做授权处理的,需要在请求头中携带鉴权参数:

请求头参数

参数类型说明
appidString
timestampString时间戳
signString签名

签名规则

  1. 将body转为base64字符串 (接口入参没有body可以忽略这一步)
  2. 将form参数 + body的base64字符串(没有则忽略) + appId + appSecret 按字典顺序排序并通过 & 拼接
  3. 将生成的字符串进行32位MD5加密

签名示例

以编辑接口为例,编辑需要的接口参数如下

json
URL: /metaApi/saveRecord?entityName=DemoCompany&recordId=0000122-08af1452c4be40049d880dc0ed28e8a5
body: {"shortName":"极昇数科"}
  1. 将body转为base64字符串。生成结果如下
  eyJzaG9ydE5hbWUiOiLmnoHmmIfmlbDnp5EifQ==
  1. 将form参数 + body转base64 + appId + appSecret 按字典顺序排序并通过 & 拼接。生成结果如下
appId=6657168576&appSecret=pdmiajwib9boha8a9vpf6osyt9yr0qddky6jdjxl&body=eyJzaG9ydE5hbWUiOiLmnoHmmIfmlbDnp5EifQ==&entityName=DemoCompany&recordId=0000122-08af1452c4be40049d880dc0ed28e8a5&timestamp=1708415950852
  1. 将生成的字符串进行MD5加密,生成sign。生成结果如下
39057bee11a07fefd91a452a0071fdcb

接口清单

查看多条数据

请求方式

  • 请求地址:/metaApi/listQuery
  • 请求方式:POST

Body参数

参数类型是否必填说明
mainEntityString必填实体Code
fieldsListString必填查询字段
quickFilterString快速搜索(根据 实体-列表设计-快速搜索字段 中设置的字段去模糊匹配)
filterObject筛选条件
pageSizeInt必填分页长度
pageNoInt必填当前页数
sortFieldsList排序字段

请求示例

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

请求参数

参数类型说明
recordIdString记录Id
fieldNamesString需要查询的字段

请求示例

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

请求参数

参数类型说明
entityNameString实体名称
recordIdString记录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

请求参数

参数类型说明
userIdString最终需要登录的用户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

请求参数

参数类型说明
recordIdString用户Id (存在则是编辑,不存在则是新建)
<body>JSON需要修改的字段值

<body>参数

参数类型是否必填说明
userNameString新建必填用户名称
loginNameString新建必填登录名
loginPwdString新建必填登录密码 (加密存储,加密规则咨询客服)
departmentIdString新建必填部门ID
disabledBoolean新建必填是否禁用
mobilePhoneString手机号
emailString邮箱
jobTitleInt职务code
rolesArray权限Id数组
ownerTeamArray团队Id数组
displayOrderint排序字段

请求示例

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

请求参数

参数类型说明
recordIdString部门Id (存在则是编辑,不存在则是新建)
<body>JSON需要修改的字段值

<body>参数

参数类型是否必填说明
departmentNameString新建必填部门名称
parentDepartmentIdString新建必填上级部门
descriptionString部门说明
departmentOwnerUserString部门负责人
displayOrderint排序字段

请求示例

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

请求参数

参数类型说明
entityNameString实体名称
fieldNameString字段名称
<body>Array单选项的值

<body>参数

参数类型是否必填说明
labelString必填展示名称
valueString必填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

请求参数

参数类型说明
entityNameString实体名称
fieldNameString字段名称

请求示例

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

请求参数

参数类型说明
entityNameString实体名称
fieldNameString字段名称
<body>Array单选项的值

<body>参数

参数类型是否必填说明
labelString必填展示名称
valueString必填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

请求参数

参数类型说明
entityNameString实体名称
fieldNameString字段名称

请求示例

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": "短信"
        }
    ]
}

待补充...