一、简介
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 | 响应时间 | 无 |



