API除錯 + API管理 + API搜尋工具,為什麼不能在一起?
0.前言
大家好,我是開源中國首席腦科主任。開發了一天的增刪改查程式碼,現在簡單聊一聊我對於除錯專案中的API的一些感想。對於一名資深業務增刪改查程式碼專家,我相信在坐的大多數java developers也是在不斷地開發並迭代自己公司的業務,外包團隊亦是如此。很久很久以前,我使用Postman作為我的第一API除錯工具,功能非常全面,但是有時候卻會因為網路問題導致連線慢。後來入手了MacBook Pro,發現了一款叫Paw的API除錯工具,非常輕量,對於比方說一個業務介面需要登陸token的資訊,新增起來也非常方便,入門門檻也很低,一直沿用至今。但是除錯了這麼多年的API,有時候真的煩了。我見過一個儲存介面,需要儲存頁面傳遞過來的50多個欄位,當然對於大頁面,這種介面比比皆是,非常多。那麼無論是Postman和Paw,我都需要手寫若干個欄位的入參來除錯API,一邊切換Postman或者Paw,一邊除錯API,非常痛苦,而且欄位越多越容易出錯。
那麼基於以上的痛點,我開始了冥想,為啥不在我們常用的開發工具裡面IntelliJ IDEA中整合一個類似Postman一樣的工具呢?為此我付出了將近1年的研究和努力,終於可以讓我平時在除錯API的時候,有一個非常快的速度,我幾乎在寫完程式碼除錯API的時候,不需要再關注引數怎麼傳,url是什麼,外掛幫我搞定了所有,我只需要稍微改幾個值就可以快速發起API請求了,當然這只是一部分核心功能。外掛對於剛開始開發java web的初學者,非常友好!
不基於任何框架,只基於“懶”,Fast Request 應運而生。
1.Fast Request是什麼
Restful Fast Request 是idea版Postman。它是一個強大的restful api工具包外掛,可以根據已有的方法幫助您快速生成url和params。 Restful Fast Request = API除錯工具 + API管理工具 + API搜尋工具
。 它有一個漂亮的介面來完成請求、檢查伺服器響應、儲存你的api請求和匯出api請求。外掛幫助你在IDEA介面內更快更高效得除錯你的API。
外掛最大的優勢是在於集成了開發軟體IntelliJ IDEA,開發者只需要一門心思的使用IDEA,擺脫了不停切換軟體的煩惱,並且外掛是直接跟你開發的API程式碼掛鉤,可以相互跳轉。我不需要在postman中看到一個API想除錯,但我又要去IDEA中翻閱許久找程式碼。
2.Fast Request的優勢是什麼
a.基於原生、效率至上,介面好友
Fast Request 提供了一個跟Postman非常相似的介面,使用門檻非常低。(見下圖)
外掛集成了除錯API的核心3要素。1.URL怎麼寫、2.引數怎麼傳、3.程式碼在哪裡
當你寫完一個方法——查詢使用者,點選左側小火箭一鍵幫你生成好除錯API所需要的內容,點選工具欄中的傳送API請求按鈕就完事了,你還會覺得除錯API麻煩嗎?
例如如下API,你只需要點火箭,右側自動根據swagger註解生成對應的引數及描述
b.輕量功能豐富
軟體包近6M,核心程式碼不足1M,並且在IDEA中集成了各種功能。
c.資料安全
資料只存在開發者本地,不會洩露資訊。
正因為我是一名資深業務增刪改查程式碼專家,我知道java軟體開發都在想什麼,需要什麼,那麼促使Fast Request後期不斷出開發者所預想的新功能。
3.Fast Request提供了什麼功能
- Postman一樣的操作介面
- 一鍵生成url和引數
- SearchEveryWhere支援
- API匯出到Postman
- 傳送請求除錯API
- 傳送請求並下載檔案
- 域名定製及切換
- 自定義引數解析
- 字串生成策略化
- 儲存API
- 管理API(搜尋過濾、修改API名稱等)
- 一鍵定位、執行歷史儲存的API到方法
- API轉curl
- 自動將API關聯到模組分組
- 內建Json引數編輯器
- API導航樹
- Headers分組
- Swagger引數解析支援
- API匯入匯出
- 一鍵分享API生成Markdown文件(developing)
- 自動生成引數的描述(developing)
以上所有的功能的靈感來源於本首席腦科主任或者網路上的java增刪改查專家。
4.Fast Request的一些功能羅列
- 除錯API
- 檔案下載
- 匯出API到postman
- SearchEveryWhere支援
- 常用API管理
- API導航樹
- API匯入匯出
以上只是一部分功能,在此網頁中有更詳細的描述http://dromara.gitee.io/fast-request/guide/feature.html
5.Fast Request開發的過程及感想
開發難度:說句實話吧,真的很難,入門相對較高,到現在為止0個優質PR。本人全靠官方文件以及百度、谷歌查詢的資料來實現。專案基於Swing,Swing的知識老早交給了當年教我java的劉x蒼蒼老師了,可想而知前期都是在摸索過程中過來的。有時候想使用一個IDEA的API得找3天,過程非常痛苦。同時相容性也是一個非常頭疼的問題。一個匯入匯出看似很簡單,我被卡了3天。外掛的研發把我肝得腰椎間盤都突出了。
細節把控:本首席腦科主任對軟體顏值還是有較高要求的,不僅要實用,看著還得舒服,介面及UI上的調整不下百次,介面看上去非常簡捷。功能上的細節更不用說。舉個例子,你除錯API的時候,如何快速得將登入介面的token塞入Headers中,我也是借鑑了Paw,以最好最快的方法,來簡化操作者的操作成本。
開發過程中的注意點:你要習慣查閱問題,把握問題的核心點,如何提問。翻閱前人留下來的問題,並去檢索,檢視人家UI設計。設計出跟IntelliJ IDEA相符合的互動以及佈局。
http://intellij-support.jetbrains.com/hc/en-us/search
http://jetbrains.design/intellij/
使用者之間的互動:
- 開發->開發
增加了匯入匯出功能,可以分享API
- 開發->測試/其他崗位
目前正在處理一鍵生成API文件的功能,這也使得開發者在開發的時候可以快速的將API的一些資訊轉給測試,讓測試人員可以快速編寫白盒測試所需要的程式碼。
例如像這樣子的(目前還在測試階段)
相信過程:收到了許多開發者非常好的想法,並且植入了外掛中,我相信一個軟體的一開始都不會是非常完美的,跟磨劍一樣,需要大量的打磨和細節上的處理。所以不管是做什麼其他軟體的開發還是別的事情,你只有經歷過過程,並解決了所有的坎,才會成長。軟體也是一樣,精益求精,才會越來越完美,你的能力也就上來了,那麼你的待遇也會隨之變好。
遇到坎別害怕:這個感覺非常強烈,我一開始也是小白,有些功能真的是無從下手,怎麼做完全沒有想法,跟spring這種資料諸多的沒法比。這個時候別急,你先記著這些功能,把它羅列下來,等你有一個好的狀態了(心情好)再去做,所有的坎會變得容易。興趣有時候也能撐過去。
總結
我相信我肯定拼不過一些諸如Postman等大眾API除錯工具,人家是若干人團隊。有人會喜歡,也有人會討厭,但是我相信過程,Fast Request不是會讓所有人都得到滿足,但是讓一部分人滿足,讓他們提升開發效率,那Fast Request的目標就達到了。
同時也希望幫助到一些IntelliJ IDEA Plugin開發的朋友。
本文僅僅代表個人的想法,不喜勿噴請放過。
- 使用 HertzBeat 5分鐘搞定 SpringBoot2 監控告警
- 使用開源實時監控系統 HertzBeat 對 Mysql 資料庫監控告警實踐
- 使用 HertzBeat 對 執行緒池框架 DynamicTp 進行監控實踐
- 使用 HertzBeat 對 API 閘道器 Apache ShenYu 的監控實踐
- 5分鐘搞定 HertzBeat 對物聯網資料庫 IoTDB 監控實踐
- 中秋第一天,我寫了一篇SSL證書過期監控最佳實踐
- 00 後 Dromara 成員帶你學 Java Lambda 函式程式設計
- 學到就是賺到,面試加分項之WebServer執行緒池管理!
- 啥?他一個人寫了個價值100萬的軟體,卻用來開源了!
- 執行緒池,我是誰?我在哪兒?
- API除錯 API管理 API搜尋工具,為什麼不能在一起?
- IDEA版Postman - Fast Request版本更新,為簡化開發而生
- Hutool-5.8.0.M1 釋出,嘗試里程碑釋出
- HertzBeat v1.0.beta.6 釋出,Linux 監控支援來啦!
- 【萬字長文】Apache ShenYu整合Apache RocketMQ實現海量日誌採集的原理與實踐
- 易用友好的監控告警系統HertzBeat赫茲跳動v1.0.beta.5釋出
- MaxKey 單點登入認證系統 v3.3.3 GA 釋出