前言
Rocket-api是一款非常敏捷的开发工具,用于快速开发API接口,只需要简单的写几条SQL语句,就可以实现Controller、Service、dao层所实现的功能。
从GitHub拉取下来Rocket-api的源码,在本地能运行起来就能解决日常的一些的开发需求,但如果有众多项目需要在此平台上开发的话就会显的很乱,并且给每个项目分配的数据源也会模糊不清,导致开发效率降低,对此特提出对Rocket-api的优化方案,如图1-1,将优化方案分为五个模块,其中接口管理Rocket-api已经具备,所以将另外4个模块作为此次优化目标。(分四篇文章)
图 1-1
一、设计目标
-
解决目前系统尚未做登陆的安全设置,同时不能新增其他的系统用户。
-
通过对用户权限的管理解决数据源安全管控的问题。
-
支持离线计算分析任务需要的定时任务。
-
需要将开发的项目与开发人员、数据源形成关联。
二、实现步骤
1、系统用户管理
(1)系统用户分为开发人员和管理员,建立同一张表(api_developer),以字段grade区分,并添加两三条数据用于测试,具体字段如下图所示。
建完表后,在代码里编写表对应的实体类,并通过注解指定表名和字段名,方便后期的数据入库
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiTable("api_developer")
public class ApiDeveloper extends ApiEntity {
@ApiUpdateField
private String name;
@ApiUpdateField
private String username;
@ApiUpdateField
private String password;
@ApiUpdateField
private String department;
@ApiUpdateField
private String remarks;
@ApiUpdateField
private String service;
@ApiUpdateField
private Integer grade;
@ApiUpdateField
private Integer status;
}
同时在RocketApiProperties.java中添加刚刚新增的表名。
/**
* 表名称自定义
* 用于自定义Rocket-API表名称时使用
*/
private ApiTableName tableName = new ApiTableName();
@Data
public static class ApiTableName{
private String api_config = "api_config";
private String api_directory = "api_directory";
private String api_example = "api_example";
private String api_info = "api_info";
private String api_info_history = "api_info_history";
private String api_developer = "api_developer";
}
项目运行后会出现如下图的错误,是因为没找到刚刚添加的表名。
根据定位去查找,发现ApiAnnotationUtil.java没有对表名进行if判断赋值,导致获取不到表名,无法查询数据。
(2)接口编辑页面添加 后台管理 按钮,点击跳转到后台管理界面,实现对开发人员的权限管控,并可增删改开发人员信息。
(3)编写后台管理界面,将数据表中的用户数据展示到页面上,方便管理员对其信息的增删改。
(4)添加开发人员,信息入库。
填写开发人员的基本信息,用户密码由后台逻辑代码生成,密码默认为12345,将页面上的输入框中数据打包成JSON发送到后台,由后台处理信息并入库。
(5)添加完成之后可对开发人员的账号信息和账号状态进行操作。
(6)点击禁用时,开发人员将不可再登录该系统,并会有如下的提示信息,需由管理员来激活该账号。
(7)开发人员登录该系统后看不到后台管理的按钮,并且也不可新增数据源,从而区分开发人员和管理员。
到此用户管理开发结束,请前往第二章数据源管理。