数据服务依赖两张表 ds_common_api 和 ds_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);