1. 程式人生 > >API debugger 一個類似Postman的支援自定義加密傳輸的後臺API介面除錯工具

API debugger 一個類似Postman的支援自定義加密傳輸的後臺API介面除錯工具

API debugger

A like Postman API debugger that supports custom encryption.

1

特徵

  • 支援可擴充套件的自定義的引數加密方式.
  • 使用資料庫按專案分開儲存BaseUrl和介面Api列表,一次配置,持續使用.
  • 支援多個BaseUrl點選切換.請求引數動態增刪.
  • 支援預設請求引數配置,該專案下的每一個介面請求都會預設新增預設請求引數.
  • 支援簡單的介面壓力測試

安裝

點選下載最新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,需要達到自定義加密的目的的話.需要自行擴充套件.

  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