开发了一年的IDEA插件,接口调试的强大工具,敢说吊打所有

前言

经历了整整一年的开发,现在这款插件终于可以测试了,可以到网站plugin.houxinlin.com 进行下载(Idea版本仅支持2021.1及以上)。

那么,这个插件到底解决了什么问题?以至于我花了一整年时间。

每个后端程序员都需要借助postman这类工具进行测试,而这类百花齐放的接口测试工具数不胜数,国内也陆续出现apipost、apifox这些,而idea端的接口测试工具也有,那为什么我还会开发一个类似的呢?

没错,它肯定有别人没有的功能,更强大,更方便。

功能一、拦截器绕过

其中之一是绕过拦截器,这是这个插件的核心功能,第二个核心功能是对springboot内的调度器就行手动触发。

先说核心,后端都会配置拦截器,用来权限验证,必须登录的用户才可以对接口调用,但问题就出在,有些接口用不到用户信息,开发时候有三个办法调试,第一个关闭拦截器,等这个接口开发好在打开,第二个方法是加入拦截器的排除列表,之后再添加回去,第三个,进行登录,获取token后,测试时添加token,但无论如何,也多少是有点麻烦的。

所以,这个插件的核心之一就是可以让某个接口在调用时绕过拦截器,你可能听起来有点迷惑,那我这个接口还安全吗,放心,拦截器绕过只有在配合这个插件时候可以绕过,不是什么spring得漏洞,在发布后,是没办法绕过的。

而且,调用时候可以传给任何http参数,在普通http调用时,如果要传的文件比较大,可能需要等待,而使用这个插件,在任何大小文件时,都是秒传,因为他的工作方式是运行反射调用,而非真正发起一个http请求,这个功能在所有同类型插件中只有本插件有哦。

功能二、可选择调用对象

另外,辅助功能是可以选择代理对象还是原对象,这个如何理解?

网上很多aop例子都是切入controller进行日志获取,那么这个controller就会被spring生成一个代理对象,对这个controller内的方法调用时,都会先进入aop代码,而这个插件也可以选择是对原对象调用还是代理对象,这样做的目的是可以绕过aop代码,他的应用场景在于,可以判断问题是不是由于aop引起的,因为你可以选择调用的对象是原对象,如果选择原对象后没有问题,逻辑是正常,而使用aop后逻辑不正常,那么很可能问题就出在aop代码上了,而以前的排查方式是,手动把aop代码注释掉,重启在测试,而现在在运行时候,不改代码就可以做到这一点。

功能三、触发调度器

第二个核心功能是对调度器的手动触发功能,调度器通常都有一个间隔式的触发时间,在调试时,也不能真的去等待吧触发吧,除非时间比较短,通常也是写一个controller去调用,也是比较麻烦,而这个插件在运行时候可以统计出所有调度器,并且提供一个按钮,可以手动触发调度器代码。

极快的扫描方式已经完全不需要用户修改url主机地址

这个插件扫描方式和所有同类型插件不同,其他插件是静态扫描,如果项目很大,文件很多,扫描会很慢,甚至是卡顿,如果controller在第三方包中,那么可能扫描不到,也有可能扫描更加慢。

而这款插件是在运行时向springboot容器获取,springboot扫描到了什么,这个插件就会显示什么,如果项目有1k个接口,他也可以在1秒内显示所有信息

另外相比于同类型插件,他们默认发起的端口要不就是写死的8080,需要用户手动去改,要不就是根据配置文件读取用户配置的端口,但是,springboot太强大了,配置端口的方法很多,用户可能不是在配置文件中配置的,而是通过代码或者启动参数,那么这些插件就无能为力了,最终还需要用户去手动改。

而本插件不一样,是在运行时候通过接口获取的springboot管理的端口,这样就消除了用户要修改端口的步骤。

功能四、脚本支持

这是目前同类型插件所没有的功能,但是遗憾的是,最初的设想是开发独立的脚本解释器,但在途中还是放弃了,因为会由于考虑不周的原因,如果开放的api无法满足用户需求,那么就相当于没有,所以目前只能集成java编译器,使用java语法进行前置、后置脚本的编写,但是在未来一段时间 ,会集成独立的脚本解释器。

功能五、接口导出

接口信息通常都需要进行文档输出,就像上面所说,可能会使用apifox或者apipost,又或者是postmam。

本插件可以一键同步到apifox,apipost暂时不支持,但是可以导出成openapi的格式,在apipost中导入。

而在apifox的对接能力上,秉着做有用的工具的思想,这里做的比apofox本身提供的插件还多了一个功能,也就是选择输出的文件目录。

并且拥有参数描述提取能力,这方面弱于apifox,目前只支持提取io.swagger.v3库下描述的字段。

功能六,响应预览

目前支持5种格式预览,分别是json、text、image、html、xml,在成功响应后,会自动推测出响应的格式,并自动解析。

功能七、快速调试接口

在树形列表中,虽然显示出了所有controller,但是还需要用户去找,但如果你当前编辑页下有你需要调试的接口,可以右击方法,选择Request Current Method即可

未来规范

目前还有两个重量级的功能未加入,暂时预计到24年中旬。

欢迎使用本插件

相关推荐
鹅城剑仙19 分钟前
Spring Boot 微服务架构设计与最佳实践
spring boot·后端·微服务
Full Stack Developme1 小时前
Spring Integration 教程
java·后端·spring
爱勇宝1 小时前
AI 时代,前端工程师的话语权正在下降?
前端·后端
kymjs张涛1 小时前
一个月,纯VibeCoding,全平台云笔记APP
前端·javascript·后端
星辰_mya1 小时前
autowired和resource区别
java·后端·spring·架构·原理
用户019027581611 小时前
用 Python + backtrader 做专业级策略回测
后端
lazy_ma1 小时前
大模型实操-Spring Boot集成LangChain4j
人工智能·后端
狗头大军之江苏分军2 小时前
前端路由是怎么来的
前端·javascript·后端
云恒要逆袭2 小时前
Java类型转换详解:小数字转大自动跑,大数字转小要小心
java·后端
刘明L2 小时前
SpringCloud整合skywalking实现链路追踪和日志采集
后端