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导入导出
以上只是一部分功能,在此网页中有更详细的描述https://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相符合的交互以及布局。
https://intellij-support.jetbrains.com/hc/en-us/search
https://jetbrains.design/intellij/
使用者之间的交互:
- 开发->开发
增加了导入导出功能,可以分享API
- 开发->测试/其他岗位
目前正在处理一键生成API文档的功能,这也使得开发者在开发的时候可以快速的将API的一些信息转给测试,让测试人员可以快速编写白盒测试所需要的代码。
例如像这样子的(目前还在测试阶段)
相信过程:收到了许多开发者非常好的想法,并且植入了插件中,我相信一个软件的一开始都不会是非常完美的,跟磨剑一样,需要大量的打磨和细节上的处理。所以不管是做什么其他软件的开发还是别的事情,你只有经历过过程,并解决了所有的坎,才会成长。软件也是一样,精益求精,才会越来越完美,你的能力也就上来了,那么你的待遇也会随之变好。
遇到坎别害怕:这个感觉非常强烈,我一开始也是小白,有些功能真的是无从下手,怎么做完全没有想法,跟spring这种资料诸多的没法比。这个时候别急,你先记着这些功能,把它罗列下来,等你有一个好的状态了(心情好)再去做,所有的坎会变得容易。兴趣有时候也能撑过去。
总结
我相信我肯定拼不过一些诸如Postman等大众API调试工具,人家是若干人团队。有人会喜欢,也有人会讨厌,但是我相信过程,Fast Request不是会让所有人都得到满足,但是让一部分人满足,让他们提升开发效率,那Fast Request的目标就达到了。
同时也希望帮助到一些IntelliJ IDEA Plugin开发的朋友。
本文仅仅代表个人的想法,不喜勿喷请放过。