api-debugger

Introduction: A like Postman API debugger that supports custom encryption. 一个类似 Postman 的支持自定义加密传输的后台 API 接口调试工具.
More: Author   ReportBugs   
Tags:

A like Postman API debugger that supports custom encryption.

一个类似 Postman 的支持自定义加密传输的后台 API 接口调试工具.

1

特征

  • 支持可扩展的自定义的参数加密方式.
  • 使用数据库按项目分开保存 BaseUrl 和接口 Api 列表,一次配置,持续使用.
  • 支持多个 BaseUrl 点击切换.请求参数动态增删.
  • 支持默认请求参数配置,该项目下的每一个接口请求都会默认添加默认请求参数.
  • 使用Json Editor Online展示请求结果 json,美观,易用.
  • 支持简单的接口压力测试

安装

点击下载最新 release 包.在安装了 JDK1.8 或者 JRE1.8 的电脑上,双击 jar 包直接运行.

使用

  1. 创建项目:菜单栏 Project > new> 输入项目名称>OK

    2

    看到当前打开的项目就 OK 了.

  2. 输入 BaseUrl,点击保存生效.

  3. 输入接口 Url,最后的请求 Url = baseUrl+接口 Url.

  4. 选择请求方法,现在只做了 POST 和 GET 方法.

  5. 选择加密方式.default 是没有加密,直接发送.

  6. Add Row 添加一个请求参数.

  7. 填写请求参数的 key 和 value,这里需要注意的是需要表格失去焦点变为蓝色之后,这个值才会被保存生效.

    3

  8. 点击小飞机发送请求.请求的相关信息在右上部分的 Request Information 中显示.请求结果在下面的 Json Editor 中显示.

  9. 请求成功返回后这个接口的 url,方法,加密方式和请求参数会自动保存到数据库中.添加其他请求只需直接输入接口 url 和参数,方法等配置进行测试,前一个接口的信息不会被覆盖.

自定义加密扩展

该 App 界面使用 Java 实现,逻辑使用 Kotlin 实现.内部数据库为ObjectBox,网络请求使用 Okhttp3.需要达到自定义加密的目的的话.需要自行扩展.

  1. [重点]fork 仓库 clone 到本地后,使用 IDEA 打开.下载 jxbrowser-对应平台 -6.20.jar (链接:https://pan.baidu.com/s/1B3ErPhbrocIaGhu3zg8RMA 密码:1wn9 ) 拷贝到 lib 中(太大了不好传).

  2. 在 build 生成 out 文件夹后,解压 jsonView.zip 到\out\production\classes\com\longforus\apidebugger\ui目录下(这样生成 jar 包的时候才会把这些文件包含到 jar 包中,gradle 应该有别的更优雅的方法,目前尚未实现).

  3. 实现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
         }
     }
    
  4. 新建一个实现类的实例添加到com.longforus.apidebugger.MyValueHandler#getEncryptImplList中.第 0 个为默认显示 item.现在就可以在加密方式中选择你自己的加密方式了.

    
     object MyValueHandler {
         val encryptImplList = listOf<IEncryptHandler>(YourEncryptHandler(), DefaultEncryptHandler())
        }
    
  5. 打包可运行的 jar 包:

    4

    5

    6

    7

  6. 添加 splash 闪屏图片: 拷贝 splash.png 到\out\production\classes目录下,在上一步生成的清单文件中添加最后一行.

       Manifest-Version: 1.0
       Main-Class: com.longforus.apidebugger.MainKt
       SplashScreen-Image: splash.png
    
Support Me
Apps
About Me
Google+: Trinea trinea
GitHub: Trinea