🔧 安装

安装

初始化数据

数据服务依赖两张表 ds_common_apids_project 作为配置数据表。在你的数据库中执行创建表的 DDL,或者执行 init-dataservice.sql DDL。

CREATE TABLE `ds_common_api` (
    `id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '主键 id,自增',
    `pid` INT(10) NULL DEFAULT '-1' COMMENT '父节点 id,如果是顶级节点为 -1 或者空',
    `name` VARCHAR(90) NULL DEFAULT NULL COMMENT '说明',
    `namespace` VARCHAR(50) NOT NULL COMMENT '命名空间,标识',
    `table_name` VARCHAR(45) NULL DEFAULT NULL COMMENT '表名',
    `type` VARCHAR(10) NULL DEFAULT NULL COMMENT '类型 SINGLE | CRUD',
    `clz_name` VARCHAR(10) NULL DEFAULT NULL COMMENT '实体类引用名称',
    `id_field` VARCHAR(10) NULL DEFAULT 'id' COMMENT '主键字段名称',
    `sql` TEXT NULL DEFAULT NULL COMMENT '单条 SQL 命令',
    `info_sql` TEXT NULL DEFAULT NULL COMMENT '查询详情的 SQL(可选的)',
    `list_sql` TEXT NULL DEFAULT NULL COMMENT '查询列表的 SQL(可选的)',
    `create_sql` TEXT NULL DEFAULT NULL COMMENT '创建的 SQL(可选的)',
    `update_sql` TEXT NULL DEFAULT NULL COMMENT '修改的 SQL(可选的)',
    `delete_sql` TEXT NULL DEFAULT NULL COMMENT '删除的 SQL(可选的)',
    `del_field` VARCHAR(100) NULL DEFAULT 'stat' COMMENT '删除字段名称',
    `has_is_deleted` TINYINT(1) NULL DEFAULT '1' COMMENT '是否有逻辑删除标记',
    `tenant_isolation` TINYINT(3) UNSIGNED NULL DEFAULT NULL COMMENT '是否加入租户数据隔离',
    `id_type` TINYINT(3) UNSIGNED NULL DEFAULT NULL COMMENT '1=自增;2=雪花;3=UUID',
    `stat` TINYINT(3) UNSIGNED NULL DEFAULT '0' COMMENT '数据字典:状态',
    `creator` VARCHAR(50) NULL DEFAULT NULL COMMENT '创建人名称(可冗余的)' ,
    `creator_id` INT(10) NULL DEFAULT NULL COMMENT '创建人 id',
    `create_date` DATETIME NOT NULL DEFAULT (now()) COMMENT '创建日期',
    `updater` VARCHAR(50) NULL DEFAULT NULL COMMENT '修改人名称(可冗余的)',
    `updater_id` INT(10) NULL DEFAULT NULL COMMENT '修改人 id',
    `update_date` DATETIME NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP COMMENT '修改日期',
    PRIMARY KEY (`id`) USING BTREE,
    UNIQUE INDEX `id_UNIQUE` (`id`) USING BTREE
)
COMMENT='通用万能型 API 接口的配置'
COLLATE='utf8mb4_unicode_ci'
CREATE TABLE `ds_project` (
    `id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '主键 id,自增',
    `datasource_id` INT(10) NULL DEFAULT NULL COMMENT '数据源 id',
    `name` VARCHAR(90) NULL DEFAULT NULL COMMENT '说明',
    `api_prefix_dev` VARCHAR(100) NULL DEFAULT NULL COMMENT 'API 前缀(开发阶段)',
    `api_prefix_prod` VARCHAR(100) NULL DEFAULT NULL COMMENT 'API 前缀(生产环境)',
    `default_config` JSON NULL DEFAULT NULL COMMENT '默认配置',
    `stat` TINYINT(3) UNSIGNED NULL DEFAULT '0' COMMENT '数据字典:状态',
    `creator` VARCHAR(50) NULL DEFAULT NULL COMMENT '创建人名称(可冗余的)',
    `creator_id` INT(10) NULL DEFAULT NULL COMMENT '创建人 id',
    `create_date` DATETIME NOT NULL DEFAULT (now()) COMMENT '创建日期',
    `updater` VARCHAR(50) NULL DEFAULT NULL COMMENT '修改人名称(可冗余的)',
    `updater_id` INT(10) NULL DEFAULT NULL COMMENT '修改人 id',
    `update_date` DATETIME NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP COMMENT '修改日期',
    PRIMARY KEY (`id`) USING BTREE,
    UNIQUE INDEX `id_UNIQUE` (`id`) USING BTREE
)
COMMENT='项目'

插入两笔新的数据,读取配置。

INSERT INTO `ds_common_api` (`id`, `pid`, `name`, `namespace`, `table_name`, `type`, `clz_name`, `id_field`, `sql`, 
`info_sql`, `list_sql`, `create_sql`, `update_sql`, `delete_sql`, `del_field`, `has_is_deleted`, `tenant_isolation`, `id_type`, `stat`) 
VALUES (1, -1, '工程', 'project', 'ds_project', NULL, NULL, 'id', NULL, NULL, NULL, NULL, NULL, NULL, 'stat', 1, NULL, NULL, 0);

INSERT INTO `ds_common_api` (`id`, `pid`, `name`, `namespace`, `type`, `table_name`, `clz_name`, `id_field`, `sql`, 
`info_sql`, `list_sql`, `create_sql`, `update_sql`, `delete_sql`, `del_field`, `has_is_deleted`, `tenant_isolation`, `id_type`, `stat`) 
VALUES (5, -1, 'common_api', 'common_api', '', 'common_api', NULL, 'id', NULL, NULL, 'SELECT \r\n	(SELECT JSON_ARRAYAGG(JSON_OBJECT(\r\n                  
\'id\', id, \'pid\', pid, \'name\', name, \'namespace\', namespace, \'tableName\', table_name, \'idField\', id_field,\r\n                  
\'className\', clz_name, \'delField\', del_field, \'sql\', `sql`, \'infoSql\', info_sql, \'listSql\', list_sql, \'type\', type,\r\n                  
\'createSql\', create_sql, \'updateSql\', update_sql, \'deleteSql\', delete_sql, \'hasIsDeleted\',\r\n                   
CAST(has_is_deleted = 1 AS JSON), \'tenantIsolation\', tenant_isolation, \'idType\', id_type, \'stat\', stat, \'creator\', creator,\r\n                  
\'creatorId\', creator_id, \'createDate\', create_date, \'updater\', updater,\r\n                 
 \'updaterId\', updater_id, \'updateDate\', update_date\r\n	)) FROM ds_common_api WHERE stat != 1 AND pid = a.id) AS children,\r\n	
 a.*\r\n FROM ds_common_api a WHERE a.stat != 1 AND (pid IS NULL OR pid = -1)', NULL, NULL, NULL, 'stat', 1, NULL, NULL, 0);

前端管理页面