Forest + IDEA = 双倍快乐!ForestX 隆重登场
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 的迭代才刚刚开始!
Forest + IDEA = 双倍快乐!ForestX 隆重登场的更多相关文章
- Comet OJ - Contest #6 B.双倍快乐(二维最大上升子序列和)
双倍快乐 题目描述 Illyasviel:"你想要最长不下降子序列吗?" star-dust:"好啊!" Illyasviel:"老板,给我整两个最长 ...
- 纯前端表格控件SpreadJS V12.1 隆重登场,专注易用性,提升用户体验
一款优秀的开发工具,在更新迭代中,除了要满足不同场景的业务需求,也需不断优化已有功能,尤其是细节方面,要能为用户带来使用体验和开发效率的提升. 作为一款备受业界专家和开发者认可的纯前端类Excel ...
- [Git] 017 加一条分支,享双倍快乐
0. 回顾 [Git] 009 逆转未来 中的 "2.2" 讲过 git checkout -- <file> 这回的 git checkout <branch_ ...
- [Git] 019 merge 命令的补充
回顾:[Git] 017 加一条分支,享双倍快乐 的 "2.3" 1. "Fast-forward" "Git" 在合并分支时会尽可能地使用 ...
- 微软新神器-Power BI横空出世,一个简单易用,还用得起的BI产品,你还在等什么???
在当前互联网,由于大数据研究热潮,以及数据挖掘,机器学习等技术的改进,各种数据可视化图表层出不穷,如何让大数据生动呈现,也成了一个具有挑战性的可能,随之也出现了大量的商业化软件.今天就给大家介绍一款逆 ...
- c 线程(平行世界)
我们已经知道如何使用进程来做一些事情了,然而 它并不是在什么地方都是最适合的. 我们看看进程的缺点是什么: 线程隆重登场 1. 如何创建线程 创建线程可以使用多种线程库,在此我们使用最流行的一种:PO ...
- Sprint计划
团队: 郭志豪:http://www.cnblogs.com/gzh13692021053/ 杨子健:http://www.cnblogs.com/yzj666/ 刘森松:http://www.cnb ...
- Asp.net 面向接口可扩展框架之消息队列组件
消息队列对大多数人应该比较陌生.但是要提到MQ听说过的人会多很多.MQ就是英文单词"Message queue"的缩写,翻译成中文就是消息队列(我英语差,翻译错了请告知). PS: ...
- 算法系列:FFT 003
转载自https://zhuanlan.zhihu.com/p/19763358 作者:Heinrich 链接:https://zhuanlan.zhihu.com/p/19763358 来源:知乎 ...
- 算法系列:FFT 001
转载自http://blog.csdn.net/orbit/article/details/17210461 2012年9月的时候,一个南京的大学生从电视台播放的一段记者采访360总裁周鸿祎的视频中破 ...
随机推荐
- 【学习笔记】 Adaboost算法
前言 之前的学习中也有好几次尝试过学习该算法,但是都无功而返,不仅仅是因为该算法各大博主.大牛的描述都比较晦涩难懂,同时我自己学习过程中也心浮气躁,不能专心. 现如今决定一口气肝到底,这样我明天就可以 ...
- AlertManager企业微信报警,时间是UTC时间,错8个小时的两种解决办法
第一种 {{ (.StartsAt.Add 28800e9).Format "2020-01-02 15:04:05" }} 或者是 {{ ($alert.StartsAt.Add ...
- Docker 查看容器映射路径
使用以下命令:container_name 是容器的名字,也可以写容器的ID. docker inspect container_name | grep Mounts -A 20 docker ins ...
- win10系统应用商店打开后无法联网 代码: 0x80131500 的解决办法
官方提供的建议网址: https://answers.microsoft.com/zh-hans/windows/forum/all/代码/cbbe7aaf-8f66-4779-89c8-3c74f5 ...
- Gitlab基础知识介绍
GitLab架构图 Gitlab各组件作用 -Nginx:静态web服务器. -gitlab-shell:用于处理Git命令和修改authorized keys列表. -gitlab-workhors ...
- 2. 在 Kubernetes 上安装 Gitlab
总结: 所需要的三个yaml文件的下载地址:https://files.cnblogs.com/files/sanduzxcvbnm/k8s-gitlab.zip Gitlab官方提供了 Helm 的 ...
- [题解] Codeforces 1349 D Slime and Biscuits 概率,推式子,DP,解方程
题目 神题.很多东西都不知道是怎么凑出来的,随意设置几个变量,之间就产生了密切的关系.下次碰到这种题应该还是不会做罢. 令\(E_x\)为最后结束时所有的饼干都在第x个人手中的概率*时间的和.\(an ...
- C++面向对象编程之虚函数与多态和继承和复合下的构造和析构
1.对于非虚函数,是不希望派生类对该函数重新定义: 对于virtual函数,在父类已经有默认定义后,并希望子类重新定义它: 对于pure virtual函数,父类没有默认定义,派生类必须要重新定义它: ...
- emqx启用JWT令牌认证(包含hmac-based和public-key)
emqx连接启用jwt令牌认证 jwt令牌 概述 JWT 即 JSON Web Tokens 是一种开放的,用于在两方之间安全地表示声明的行业标准的方法(RFC 7519). 组成 令牌的形式 xxx ...
- CRT & EXCRT 学习笔记
这玩意解决的是把同余方程组合并的问题. CRT的核心思想和拉格朗日插值差不多,就是构造一组\(R_i\)使得$\forall i,j(i \neq j) $ \[R_im_i = 1, R_im_j ...