api-debugger
A like Postman API debugger that supports custom encryption.
一个类似 Postman 的支持自定义加密传输的后台 API 接口调试工具.
特征
- 支持可扩展的自定义的参数加密方式.
- 使用数据库按项目分开保存 BaseUrl 和接口 Api 列表,一次配置,持续使用.
- 支持多个 BaseUrl 点击切换.请求参数动态增删.
- 支持默认请求参数配置,该项目下的每一个接口请求都会默认添加默认请求参数.
- 使用Json Editor Online展示请求结果 json,美观,易用.
- 支持简单的接口压力测试
安装
点击下载最新 release 包.在安装了 JDK1.8 或者 JRE1.8 的电脑上,双击 jar 包直接运行.
- JDK 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- 如果在 Windows 系统下无法正常使用的话.需要安装 Microsoft Visual C++ 2015 Redistributable (x64)
使用
创建项目:菜单栏 Project > new> 输入项目名称>OK
看到当前打开的项目就 OK 了.
输入 BaseUrl,点击保存生效.
输入接口 Url,最后的请求 Url = baseUrl+接口 Url.
选择请求方法,现在只做了 POST 和 GET 方法.
选择加密方式.default 是没有加密,直接发送.
Add Row 添加一个请求参数.
填写请求参数的 key 和 value,这里需要注意的是需要表格失去焦点变为蓝色之后,这个值才会被保存生效.
点击小飞机发送请求.请求的相关信息在右上部分的 Request Information 中显示.请求结果在下面的 Json Editor 中显示.
请求成功返回后这个接口的 url,方法,加密方式和请求参数会自动保存到数据库中.添加其他请求只需直接输入接口 url 和参数,方法等配置进行测试,前一个接口的信息不会被覆盖.
自定义加密扩展
该 App 界面使用 Java 实现,逻辑使用 Kotlin 实现.内部数据库为ObjectBox,网络请求使用 Okhttp3.需要达到自定义加密的目的的话.需要自行扩展.
[重点]fork 仓库 clone 到本地后,使用 IDEA 打开.下载 jxbrowser-对应平台 -6.20.jar (链接:https://pan.baidu.com/s/1B3ErPhbrocIaGhu3zg8RMA 密码:1wn9 ) 拷贝到 lib 中(太大了不好传).
在 build 生成 out 文件夹后,解压 jsonView.zip 到
\out\production\classes\com\longforus\apidebugger\ui
目录下(这样生成 jar 包的时候才会把这些文件包含到 jar 包中,gradle 应该有别的更优雅的方法,目前尚未实现).实现
com.longforus.apidebugger.encrypt.IEncryptHandler
抽象类.可参考默认实现类com.longforus.apidebugger.encrypt.DefaultEncryptHandler
/** * Created by XQ Yang on 8/30/2018 5:11 PM. * Description : 加密处理 */ abstract class IEncryptHandler { //这个加密类型的 code,同一工程不允许出现相同的 abstract val typeCode:Int //显示在界面上的名字 abstract val title: String //实现 get 方法的参数加密 abstract fun onGetMethodEncrypt(params: Map<String, String>?, builder: Request.Builder, url: String) //实现 post 方法的参数加密 abstract fun onPostMethodEncrypt(params: Map<String, String>?, builder: Request.Builder, url: String): RequestBody override fun toString(): String { return title } }
新建一个实现类的实例添加到
com.longforus.apidebugger.MyValueHandler#getEncryptImplList
中.第 0 个为默认显示 item.现在就可以在加密方式中选择你自己的加密方式了.object MyValueHandler { val encryptImplList = listOf<IEncryptHandler>(YourEncryptHandler(), DefaultEncryptHandler()) }
打包可运行的 jar 包:
添加 splash 闪屏图片: 拷贝 splash.png 到
\out\production\classes
目录下,在上一步生成的清单文件中添加最后一行.Manifest-Version: 1.0 Main-Class: com.longforus.apidebugger.MainKt SplashScreen-Image: splash.png