ApiHelper:让 Spring API 查找、跳转和调试更顺手

98 阅读5分钟

ApiHelper:让 Spring API 查找、跳转和调试更顺手

image.png 做 Spring 项目时,你大概率遇到过这些场景:

  • 看到一个 @FeignClient 方法,想知道真正的 Controller 在哪里。
  • 在 Controller 里改了接口路径,想确认调用方有没有对应上。
  • 想复制一个完整接口地址,却要在类路径、方法路径、配置文件里的 context-path 之间来回切。
  • 临时验证接口,打开浏览器、Postman 或 curl,再手动拼参数。

这些事情都不难,但每天重复很多次,就会变成很明显的开发摩擦。ApiHelper 想解决的就是这类问题:让 Spring API 的查找、跳转、浏览和轻量调试都留在 IntelliJ IDEA 里完成。

ApiHelper 是什么

ApiHelper 是一个面向 Spring API 的 IntelliJ IDEA 插件。

它支持常见的 Spring MVC Controller、Spring Cloud OpenFeign,以及 Spring 6 的 @HttpExchange 声明式 HTTP 客户端。装上之后,你可以在 IDE 里更快地找到接口、理解调用关系、复制路径,并直接发起一次简单的调试请求。

它不是要替代完整的接口管理平台,也不是要替代专业 API 调试工具。它更像是日常开发里的一个小助手:你正在写代码,顺手就能完成接口相关的高频操作。

最好用的地方:双向跳转

image.png

image.png

image.png 在微服务项目里,Controller 和 Feign Client 经常分散在不同模块、不同包,甚至不同命名风格下。

以前要找对应关系,通常会这样:

  • 复制路径去全局搜索。
  • 根据方法名猜 Controller。
  • 在接口文档里找一遍。
  • 从调用链一点点追过去。

ApiHelper 会在编辑器 gutter 区域展示导航图标。你可以从 @FeignClient@HttpExchange 方法跳到对应的 @RestController 方法,也可以从 Controller 反向跳到客户端声明。

这个能力在维护老项目时尤其舒服。很多时候你不需要先理解整个项目结构,只要从当前接口出发,点一下就能找到对端。

右键复制接口地址

接口路径经常不是一个注解就能看全的。

比如项目里可能同时存在:

  • Controller 类上的基础路径。
  • 方法上的具体路径。
  • server.servlet.context-path
  • spring.mvc.servlet.path
  • 配置里的 ${var:default} 占位符。
  • 不同 profile 下的配置差异。

ApiHelper 会尽量帮你把这些信息解析到一起。你可以在 gutter 图标上右键,直接复制解析后的 URL。

这件事看起来很小,但实际开发里很省心。尤其是接口路径层级比较深、配置项比较多的时候,不用再靠肉眼拼接,也不容易漏掉前缀。

右侧工具窗口:把项目接口集中起来

image.png

ApiHelper 会在 IDEA 右侧提供一个工具窗口,把项目里的 Controller、Feign 和 HttpExchange 接口集中展示出来。

你可以在这里:

  • 查看项目里有哪些接口。
  • 按类分组浏览 Controller 和客户端声明。
  • 搜索接口路径、类名或方法。
  • 双击跳转到源码。
  • 右键复制 URL。
  • 右键进入接口调试。

这个窗口适合两类场景。

第一类是接手项目时快速熟悉接口分布。你不用先打开一堆包目录,也不用靠接口文档反查代码。

第二类是日常开发时快速定位。比如你只记得接口路径里有 order,直接搜一下,就能看到相关 Controller 和客户端方法。

内置轻量 API 调试

image.png

很多时候,我们只是想快速验证一下接口能不能通、参数对不对、响应结构是不是预期。

ApiHelper 内置了一个轻量调试页,支持常见请求参数:

  • Query
  • Path
  • Header
  • Cookie
  • Body

Body 也覆盖了日常会用到的类型,比如 JSON、XML、raw、form-data、x-www-form-urlencoded、binary 等。

它的定位不是做一个复杂的 API 工作台,而是让你在写代码时少切一次工具。看到接口,右键调试,补几个参数,发一次请求。如果只是本地联调或快速确认,这个流程会更短。

适合哪些项目

ApiHelper 比较适合这些项目:

  • 使用 Spring MVC 编写 REST API。
  • 使用 OpenFeign 做服务间调用。
  • 已经开始使用 Spring 6 @HttpExchange
  • 项目接口数量较多,经常需要在 Controller 和客户端声明之间切换。
  • 本地联调时经常需要复制接口地址、临时发请求。

如果你的项目是多模块微服务,或者 Controller 和 Feign 分散得比较开,插件的收益会更明显。

它解决的是“顺手”问题

我觉得 ApiHelper 最核心的价值不是某个单独功能,而是把几个高频动作串起来:

  1. 找接口。
  2. 看对端。
  3. 复制地址。
  4. 快速调试。

这些动作原本分散在全局搜索、项目目录、配置文件、浏览器、Postman、终端之间。ApiHelper 把它们收回到 IDE 里,让开发过程少一些打断。

对一个插件来说,“顺手”很重要。它不应该要求你改变工作方式,而应该藏在你本来就在用的地方,需要的时候刚好出现。

安装方式

插件已经上架 JetBrains Marketplace,可以直接打开下面的地址安装:

plugins.jetbrains.com/plugin/3232…

也可以在 IDEA 里选择 Settings -> Plugins,搜索 ApiHelper 后安装。

如果你想从本地构建安装,也可以使用:

./gradlew :buildPlugin

构建完成后,在 IDEA 里选择:

Settings -> Plugins -> Install Plugin from Disk...

然后选择生成的插件 zip 即可。

写在最后

如果你平时经常在 Spring Controller、Feign Client、接口路径和调试工具之间来回切,ApiHelper 应该能帮你省掉不少琐碎操作。

它不是一个很重的工具,更像是给 Spring API 开发补上的一块 IDE 拼图:接口在哪里、谁在调用、路径是什么、能不能请求,尽量在一个地方完成。

欢迎大家下载使用,也欢迎在 GitHub Issues 里提出建议或反馈问题。如果这个插件刚好解决了你的日常开发痛点,也欢迎顺手点一个 Star。

插件市场:

plugins.jetbrains.com/plugin/3232…

项目地址:

github.com/sxhjlzl/api…