1. 程式人生 > 其它 >【測試平臺開發】二十、完成編輯頁傳送介面請求功能

【測試平臺開發】二十、完成編輯頁傳送介面請求功能

基於 springboot+vue 的測試平臺(練手專案)開發繼續更新。

今天終於把已做的功能都重構完成了。

其中前端又做了個小調整,就是入參動態增刪的控制元件,本來我是3個tab複用一個元件,後來不斷髮現一些問題,最後我決定還是分開寫吧。

今天另一個重點是重做了編輯頁傳送介面請求的後端功能。這個功能重構之前是有的,但是現在我覺得之前那些做相容不夠。

因為我最近在工作中接入飛書的一些開放API,發現存在一些介面的入參是組合來的,比如 post 請求中,既有查詢引數,也有請求體。

於是我重新梳理一下,儘量支援了各種引數組合:

  • 不帶任何引數
  • 只有 param 查詢引數
  • 只有 rest 路徑引數
  • 只有 body 引數
  • 同時 param + body
  • 同時 rest + body

請求方法的話,暫時還是先支援 get 與 post 這2種最常見的。最後,把各種判斷情況分支都走了一遍,確認沒啥問題。

功能實現

接下來記錄下功能的實現。思路很簡單:

  • 一些必要引數的獲取與處理
  • 不同請求方法的判斷
  • 進一步判斷不同的引數組合情況,來進行傳送http介面的處理。

用的 http 客戶端是hutool框架的,程式碼位置在專案的這裡,93行往後。

首先,主方法前面處理一些必要的入參資訊,比如 method、header、以及獲取表單裡的引數。

接下來進入到請求方法的判斷,然後進一步判斷目前前端提交過來的各種型別的引數情況,這裡抽出去寫了 2 個判空的方法。

以 get 方法為例,現在我可以判斷出實際提交來的引數都有誰。

判斷出引數型別,就可以針對性處理了,這裡最麻煩的就是 rest 路徑引數的處理,我前端提交來的路徑引數是用花括號包著的{name},所以要對url重新處理一下。

拼接完成後,就可以直接發起請求了。

這裡要注意的是,在hutool的 http 客戶端中,我入參使用body()的時候會把form()的引數覆蓋掉,所以在處理請求體引數組合的情況下,只能把查詢引數或者路徑引數,都處理在請求 url 上。比如,這裡是為了處理param+body的組合,手動把param引數拼接到 url 上。

其他就沒什麼特別的了,在 post 中我覺得沒必要支援那麼多種情況,所以只相容了 3 種情況。

目前只是一個功能實現的訴求,還缺少一些異常的處理,後續慢慢補上。接下來會繼續新功能的開發,過程中也會帶著改一些我記錄下來的 bug 。

前後端的最新程式碼都已經更新到分支上,如果也想動手的童鞋可以在公眾號回覆【測試平臺】,可以獲取地址以及開發記錄系列文章。