wno_interface微型接口配置管理器

一、简介

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 脚本配置说明

参考脚本

import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import com.alibaba.fastjson2.JSONObject

Map<String, String> reqHeaders = (Map<String, String>)$reqHeaders
String reqParam = (String)$reqParam
String method = (String)$method
String url = (String)$url
String msgId = (String)$msgId
String ipAddr = (String)$ipAddr
HttpServletRequest httpServletRequest = (HttpServletRequest)$httpServletRequest
HttpServletResponse httpServletResponse = (HttpServletResponse)$httpServletResponse
Map<String, String> queryParams = (Map<String, String>)$queryParams

String qp = JSONObject.toJSONString(queryParams)

String repMsg = '''{"msg": "请求成功","code": 200,"msgId": "'''+msgId+'''","reqParam":'''+reqParam+''',"queryParams":'''+qp+''',"ipAddr":"'''+ipAddr+'''"}'''


Map<String, Object> repHeaders = new HashMap<>()
repHeaders.put("Content-Type","application/json; charset=utf-8")

Map<String, Object> res = new HashMap<>()
res.put("repHeaders",repHeaders)
res.put("repMsg",repMsg)
res.put("repStatus",200)

return res

目前脚本默认传了9个参数,返回需要携带3个参数。具体参数说明如下:

类型 参数 类型 标签 说明
输入 reqHeaders Map<String, String> $reqHeaders 接口请求头的所有信息
输入 reqParam String $reqParam 接口请求报文
输入 method String $method 接口请求方法
输入 url String $url 接口请求路径
输入 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 响应时间
posted @ 2026-02-10 17:28  wno704  阅读(15)  评论(0)    收藏  举报