一、简介
wno_interface 是一款微型的接口配置管理工具,旨在应对实际项目中日益增长的接口调试、开发与后期维护工作,这些工作负担随着项目的不断迭代而逐渐加重。接口的开发、调试、上线及下线,共同构成了一个接口的完整生命周期。若在项目中集成接口,则需频繁地修改代码并进行升级,这无疑带来了较大的风险。本工具正是为解决这一棘手问题而设计的。它实现了接口的开发调测、上线、下线灵活性,使得接口的控制能够随时进行变更并即时生效,从而有效节省了接口调试与升级所需的时间。
1.1 技术栈
框架 | 技术 | 版本 |
---|---|---|
核心框架 | Spring Boot | 2.5.6 |
持久层框架 | jdbctemplate | 5.3.12 |
数据库连接池 | Alibaba Druid | 1.1.10 |
模板解析 | Groovy | 3.0.9 |
json解析 | fastjson2 | 2.0.12 |
Xquery解析 | Saxon-HE | 11.3 |
ssh | jsch | 0.1.55 |
1.2 部署手册
1.2.1 数据初始化
目前平台支持MySql\Oracle\PostgreSQL\teldb版本,只需要修改数据源配置亦可。具体脚本见: resources/sql目录下脚本。 数据库导入完成后,需要修改数据源地址,wno704.quartzDB属性信息;为了防止对数据库污染,表前缀可以根据自己情况变动,需要配置wno704.tablePrefix,同时修改导入脚本中表前缀,目前默认为INTF_;日志目录需要配置wno704.logDir。
1.2.2 编译构件
传统的springboot项目,目前生成物为jar包,如需要war,请参考 《Spring-Boot项目创建》
1.2.3 服务部署
发布到服务器后,执行java -jar jar包名称,快捷部署可以参考 《Linux下部署Spring-Boot-jar》
二、接口配置
2.1 DS基础配置说明
字段 | 说明 |
---|---|
SOURCE_ID | 数据源id |
TYPE | 类型,目前支持MySQL Oracle PostgreSQL类型 |
JDBCTEMPLATE_NAME | jdbc名称 |
DRIVER_CLASS_NAME | jdbc驱动class |
URL | 数据库链接字符串 |
USERNAME | 数据库帐号 |
PASSWORD | 数据库密码 |
DB_DESC | 数据源描述 |
STATUS | 可用状态 0使用 1下线 |
CONFIG | 其他配置,多个配置换行,属性名称和值用:隔开 |
CREATE_TIME | 创建时间 |
READ_TIME | 读取时间 |
注意
:如果修改了数据库等配置,需要修改CREATE_TIME为当前时间,定时器读取了后,会自动更新READ_TIME字段。
2.2 接口配置参数
字段 | 说明 |
---|---|
INTF_ID | 接口id |
METHOD | 方法,目前支持所有类型请求,例如POST\GET\PUT\DELETE\PATCH等 |
URL | 路径,如果为匹配路径情况,变动位置用%替代 |
SCRIPT | 脚本 |
REMARK | 备注 |
STATUS | 可用状态 0使用 1下线 |
IS_LOG | 是否保存日志 0保存 1不保存 |
CREATE_TIME | 创建时间 |
READ_TIME | 读取时间 |
注意
:如果修改了数据库等配置,需要修改CREATE_TIME为当前时间,定时器读取了后,会自动更新READ_TIME字段。
2.3 脚本配置说明
参考脚本
1 | import javax.servlet.http.HttpServletRequest |
目前脚本默认传了9个参数,返回需要携带3个参数。具体参数说明如下:
类型 | 参数 | 类型 | 标签 | 说明 |
---|---|---|---|---|
输入 | reqHeaders | Map<String, String> | $reqHeaders | 接口请求头的所有信息 |
输入 | reqParam | String | $reqParam | 接口请求报文 |
输入 | method | String | $method | 接口请求方法 |
输入 | uri | String | $uri | 接口请求路径 |
输入 | msgId | String | $msgId | 系统自动生成的消息id,如果保存调用记录,这个就是记录表主键 |
输入 | ipAddr | String | $ipAddr | 接口请求原始IP |
输入 | httpServletRequest | HttpServletRequest | $httpServletRequest | 请求对象 |
输入 | httpServletResponse | HttpServletResponse | $httpServletResponse | 响应对象 |
输入 | queryParams | Map<String, String> | $queryParams | 接口请求查询参数 |
输出 | repHeaders | Map<String, String> | repHeaders | 接口响应头信息 |
输出 | repMsg | String | repMsg | 接口响应报文 |
输出 | repStatus | Integer | repStatus | 接口响应状态 |
注意
: 引入工具类参考 https://wno704.cn/wno_util/
2.4 接口记录说明
字段 | 说明 | 对应脚本字段 |
---|---|---|
LOG_ID | 主键 | $msgId |
INTF_ID | 接口id | 无 |
METHOD | 方法 | $method |
URL | 路径 | $uri |
REMARK | 备注 | 无 |
REQUEST_IPADDR | 请求IP | $ipAddr |
REQUEST_HEADERS | 请求头信息 | $reqHeaders |
REQUEST_PARAM | 请求参数 | $queryParams |
REQUEST_MSG | 请求报文 | $reqParam |
REQUEST_TIME | 请求时间 | 无 |
RESPONSE_HEADERS | 响应头信息 | repHeaders |
RESPONSE_STATUS | 响应状态 | repStatus |
RESPONSE_MSG | 响应头报文 | repMsg |
RESPONSE_TIME | 响应时间 | 无 |