# wno_interface **Repository Path**: wno704/wno_interface ## Basic Information - **Project Name**: wno_interface - **Description**: wno_interface 是一个微型的接口配置管理器,我们在实际的项目中存接口调测与后期维护工作量随着项目迭代越来越大。接口的开发、调测、上线、下线是一个接口的完成的生命周期,如果在项目中集成接口,就意味着需要不断改代码升级,这样也就意味着风险很大。本工具就是为了解决这个头疼的问题。把接口的上下线、逻辑全部进行灵活配置,这样接口的控制就可以随时变更与生效,节省了调测升级等时间。 - **Primary Language**: Java - **License**: AGPL-3.0 - **Default Branch**: 4.3 - **Homepage**: https://wno704.top/2023/10/25/wno_interface%E5%BE%AE%E5%9E%8B%E7%9A%84%E6%8E%A5%E5%8F%A3%E9%85%8D%E7%BD%AE%E7%AE%A1%E7%90%86%E5%99%A8/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-10-20 - **Last Updated**: 2026-01-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 一、简介 [wno_interface](https://gitee.com/wno704/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.intfDB属性信息,其他数据源可以根据实际裁剪,具体修改见 1.2.4。 ### 1.2.2 编译构件 传统的springboot项目,目前生成物为jar包,如需要war,请参考[《Spring-Boot项目创建》](https://wno704.top/2020/08/15/Spring-Boot%E9%A1%B9%E7%9B%AE%E5%88%9B%E5%BB%BA/) ### 1.2.3 服务部署 发布到服务器后,执行java -jar jar包名称,快捷部署可以参考 [《Linux下部署Spring-Boot-jar》](https://wno704.top/2020/08/19/Linux%E4%B8%8B%E9%83%A8%E7%BD%B2Spring-Boot-jar/) ## 二、接口配置 ### 3.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字段。 ### 3.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字段。 ### 3.3 脚本配置说明 参考脚本 ```java import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse import com.alibaba.fastjson2.JSONObject Map reqHeaders = (Map)$reqHeaders String reqParam = (String)$reqParam String method = (String)$method String uri = (String)$uri String msgId = (String)$msgId String ipAddr = (String)$ipAddr HttpServletRequest httpServletRequest = (HttpServletRequest)$httpServletRequest HttpServletResponse httpServletResponse = (HttpServletResponse)$httpServletResponse Map queryParams = (Map)$queryParams String qp = JSONObject.toJSONString(queryParams) String repMsg = '''{"msg": "请求成功","code": 200,"msgId": "'''+msgId+'''","reqParam":'''+reqParam+''',"queryParams":'''+qp+''',"ipAddr":"'''+ipAddr+'''"}''' Map repHeaders = new HashMap<>() repHeaders.put("Content-Type","application/json; charset=utf-8") Map res = new HashMap<>() res.put("repHeaders",repHeaders) res.put("repMsg",repMsg) res.put("repStatus",200) return res ``` 目前脚本默认传了9个参数,返回需要携带3个参数。具体参数说明如下: |类型|参数|类型|标签|说明| |---|---|----|----|---| |输入|reqHeaders|Map|$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|$queryParams|接口请求查询参数| |输出|repHeaders|Map|repHeaders|接口响应头信息| |输出|repMsg|String|repMsg|接口响应报文| |输出|repStatus|Integer|repStatus|接口响应状态 | ### 3.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|响应时间|无|