Forest + IDEA = 雙倍快樂!ForestX 隆重登場
Forest 是一款宣告式的 Java 開源 HTTP 框架,相比它的前輩 Httpclient 和 OkHttp 更簡明易懂、也更容易維護
廢話不多說,先讓我們康康用它寫出來的代碼長什么樣子
public interface AmapClient { /** * 聰明的你一定看出來了這是一個GET請求 */ @Get("http://ditu.amap.com/service/regeo?longitude={lng}&latitude={lat}") Map getLocation(@Var("lng") String longitude, @Var("lat") String latitude); }
輕輕松松完成了從高德地圖獲取經緯度錯在的地理資訊的 Rest API 介面定義,之后只要呼叫 AmapClient.getLocation 這個 Java 方法即可自動發送 HTTP 請求,并接受回應資料,然后轉換成 Map 型別物件再交到你手上
這樣做確實比以前手動組裝 OkHttp 的 Client 物件、 OkRequest 物件好上很多倍,就算要呼叫的 HTTP 介面很多、結構再復雜,也不用怕了
但當一個專案中有成千上萬個 HTTP 請求要呼叫,介面的管理和維護成本也會上升到一個吃力的高度
比如哪個介面對應哪個網站平臺哪個 URL 往往不能一眼看出、專案中散落的介面具體有哪些也沒法一下子就知道
另一個問題是 Forest 中的模板字串中的占位符可以方便的參考組態檔中定義的變數已經通過 @Var 標簽定義的引數,但語法高亮和一個運算式語言應用的基本支持(如代碼補全和提示)
這在代碼少的時候不算問題,代碼介面躲到一定程度,字串模板中的變數參考寫錯的概率就大大增加,因為配置也多了,就容易搞不清楚誰再呼叫誰
這個時候就有請我們今天的主角 ForestX 登場啦~~
專為 Forest 量身定做的 IDEA 插件
ForestX 是一款專為 Forest 提供支持的 IDEA 插件
它能大幅提高您使用 Forest 框架時的開發體驗
倉庫地址: https://gitee.com/CHMing7/ForestX
接下來,就讓我們康康它有哪些功能:
側邊導航工具列
點擊右邊的 Forestlogo 小鳥圖示,可打開 ForestX 的導航工具列,它會把專案中定義的 Forest 介面都羅列在一起,方便管理
- 介面串列分三個層次:最頂層的專案 (目錄)、Forest 介面 (小鳥圖示)、請求方法
- 在 Forest 介面串列中,方法名左側的圖示代表了該請求的型別 (
GET/POST) - 方法名 / 介面的右側,則是用灰色字體展示的 URL 路徑 (一般不是全路徑,而是定義在方法上的路徑)
代碼補全
- 根據組態檔中
forest.variables下定義的全域變數來補全代碼
- 根據 YAML 組態檔中定義的 YAML 配置項來補全代碼
- 根據請求方法的
@Var引數定義來補全代碼
- 根據
@BindingVar注解定義的方法來補全代碼
- 在編程式的代碼中,也可出現代碼補全的智能提示
不過目前僅對 Forest.get、Forest.post 等請求方法開放次功能
代碼跳轉
按住鍵盤 Ctrl 鍵,將滑鼠移動到 Forest 模板運算式中的識別符號上 (比如變數名),并懸停一小段時間,就會跳出該識別符號所參考的配置變數或 Java 屬性的簡短資訊
此時點擊滑鼠左鍵,即可跳轉到該識別符號所參考的變數 / 配置的定義代碼
結語
程式猿的作業是創造工具,而工具亦可以用來服務程式猿,這是一種正向回圈,也是一次次迭代的縮影,正是在一次次的迭代中,程式猿們不斷地創造出很好、更完善、更可能改變世界的工具
而 ForestX 的迭代才剛剛開始!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/538947.html
標籤:其他
