Skip to content

REST

无需任何编程,启用后即可通过 RESTfull API 对数据源进行基本的增删改查(CRUD)基本操作!

  • 告别枯燥无味的增删改查SQL语句
  • 更加专注业务,节约大量成本,提高工作效率

局限性

  1. 为了使用简便, 目前只支持单表操作
  2. 不支持事务/多表等
  3. 不支持复杂的查询
  4. 为了数据安全,不支持全局删除/修改, 当执行不带任何条件的删除/修改时会抛出异常

开始

安装网关并添加一个数据源

1. 启用REST功能

  1. 启用 alt text
  2. 访问权限
    1. 开发环境支持使用本平台Token访问(可在项目设置中开启)
    2. 在访问策略的权限管理中设置某个策略的访问权限, 打开 REST 开关即可 alt text
    3. 开启后可以在 权限中看到 REST的标记 alt text

3. 使用

快速编写API alt text

参数说明

body参数说明

json
{
    "meta": {
        "ds": "", // string, 数据源名称: 表示此次执行的目标数据源
        "table": "", // string, 数据表的名称
        "action": "", // string, 动作: 支持 'c'|'r'|'u'|'d', CURD(Create, Update, Retrieve, Delete) 
        "fields": "id,age", // string, action == 'r' 有效, 指定返回字段,多个字段直接用逗号(",")间隔 
        //filters , SQL 过滤条件, action='r'|'u'|'d' 有效; action ='u'|'d' 时为必要参数,以避免直接操作整张表
        //SQL 解析时多个条件间, 会使用 'AND' 连接 
        "filters": {},

        "pageSize": 30, // 分页 每页大小, action == 'r' 有效
        "pageNum": 1, // 分页 当前页码, action == 'r' 有效
    },
    // Record<string,any>, action='c'|'u' 有效, 表示要 写入/修改 的字段信息, object 的key就是表的字段名称,value为值
    "params": { // 值  Create, Update 有效
        "id": 1,
        "name": 2
    },
}

示例

在平台登录后, 项目=>数据源, 即可查看数据源是否启用了多环境

  • 数据源未启用多环境,参数 dsEnv 无意义, 省略即可
  1. 查询

    js
    // 查询数据源 'mysql' 下表 'test1' 中 id =1 的数据
    const body={
        "ds": "mysql",
        "table": "test1",
        "action": "r",
        "filters": {
            "id":1
        }
    }

    alt text

  2. 分页查询

    js
    // 分页查询 数据源 'mysql' 下表 'test1'  的数据
    const body={
        "ds": "mysql",
        "table": "test1",
        "action": "r",
        "filters": {},
        "pageNum": 1,
        "pageSize": 10
    }

    alt text

  3. 添加一条数据

    js
    // 添加一条数据到 数据源 'mysql' 下表 'test1'  中
    const body={
        "ds": "mysql",
        "table": "test1",
        "action": "c",
        "params": {
            "id": 1001,
            "s1": "rest insert 测试"
        }
    }

    alt text

  4. 修改一条数据

    js
    // 修改 数据源 'mysql' 下表 'test1'  中 id =1001 的数据
    // 注意, 若 filters 为空 会提示异常的
    const body={
        "ds": "mysql",
        "table": "test1",
        "action": "u",
        "params": {
            "s1": "REST 修改测试"
        },
        "filters": {
            "id": 1001
        }
    }

    alt textfilters 异常:alt text

  5. 删除一条数据

    js
    // 删除 数据源 'mysql' 下表 'test1'  中 id =1001 的数据
    // 注意, 与修改 一样, 若 filters 为空 会提示异常的,
    const body={
        "ds": "mysql",
        "table": "test1",
        "action": "d",
        "filters": {
            "id": 1001
        }
    }

    alt text

  6. 更多玩法

    js
    // 实例: 数据源 `mysql` 中有张用户表(user), 其中有字段 id(int),name(varchar),age(int) 
    
    // 1. 获取 'user'表 中 id = 1 且 name='张三' 用户的 age 信息
    const body={
        "ds": "mysql",
        "table": "user",
        "action": "r",
        "filters": {
            "id":1,
            "name":"张三"
        },
        "fields":"age"
    }
    
    // 2. 获取 'user'表 中 age = 18 的用户, 指定返回字段 `id,name` ,且只返回 前 100 条数据
    const body={
        "ds": "mysql",
        "table": "user",
        "action": "r",
        "fields":"id,name",
        "filters": {
            "age": 18
        },
        "pageNum": 1,
        "pageSize": 100
    }