# RestfulToolPlus **Repository Path**: ynx520/restful-tool-plus ## Basic Information - **Project Name**: RestfulToolPlus - **Description**: https://gitee.com/ynx520/restful-tool-plus - **Primary Language**: Java - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2025-12-23 - **Last Updated**: 2026-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RestfulTool-Plus [![Version](https://img.shields.io/jetbrains/plugin/v/29496-restfultool-plus.svg)](https://plugins.jetbrains.com/plugin/29496-restfultool-plus) [![Downloads](https://img.shields.io/jetbrains/plugin/d/29496-restfultool-plus.svg)](https://plugins.jetbrains.com/plugin/29496-restfultool-plus) > 一款现代化的 IntelliJ IDEA RESTful API 开发辅助工具插件,为开发者提供完整的 RESTful 服务开发体验。 > - `最低兼容版本`: `2024.1` (Build 241+) * 如需兼容旧版本 IDEA,请使用原版 [`RESTFulToolkit`](https://plugins.jetbrains.com/plugin/10292-restfultoolkit) > - `插件地址`: [`RestfulTool-Plus`](https://plugins.jetbrains.com/plugin/29496-restfultool-plus/) > + [GitHub](https://github.com/ynx-official/restful-tool-plus) > + [Gitee](https://gitee.com/ynx520/restful-tool-plus) --- ## 📖 项目历史 本项目经历了三个版本的迭代,每个版本都是因为原项目停止维护而继续开发: ### 第一版 - RESTFulToolkit - **插件地址**: [RESTFulToolkit](https://plugins.jetbrains.com/plugin/10292-restfultoolkit/) - **状态**: 原作者停止维护,无法适配新版本 IDEA - **兼容版本**: IDEA 201 及以下版本 ### 第二版 - RestfulTool - **项目地址**: [Yuonsa/RestfulTool](https://github.com/Yuonsa/RestfulTool) - **状态**: 社区维护版本,适配了 IDEA 201+ 版本 - **特点**: 在 RESTFulToolkit 基础上进行适配和修复 ### 第三版 - RestfulTool-Plus (当前版本) - **项目地址**: [restful-tool-plus](https://github.com/ynx-official/restful-tool-plus) - **状态**: 持续维护中,适配最新 IDEA 版本 - **特点**: - 完全重构和优化 - 支持 IDEA 2024.1+ 版本 - 新增多项现代化功能 - 性能优化和体验提升 > 💡 **说明**: 本项目是在原项目基础上继续开发,旨在为开发者提供更好的 RESTful API 开发体验。 --- ## ✨ 功能特性 一套功能强大的 Restful 服务开发辅助工具集,旨在提升 API 开发效率。 ### 🌳 服务树可视化 - 提供清晰的服务树显示窗口,展示项目中所有 RESTful 接口 - 支持按模块、控制器分层展示 - 双击 URL 直接跳转到对应的方法定义 - 支持按 HTTP 方法类型过滤 ### 🚀 HTTP 请求测试 - 内置 HTTP 请求工具,支持发送各种类型的 HTTP 请求 - 提供请求头、请求体、响应结果的完整视图 - 支持多种数据格式(JSON、XML、HTML等) - 实时查看响应结果 ### 🔍 智能搜索 - 支持 `Navigate -> Request Service` 快速搜索接口 - 快捷键: `Ctrl + Alt + /` - 项目启动时自动扫描所有接口 - 统一数据源管理,避免重复扫描 ### 🎯 框架支持 - 全面支持 Spring 体系 (Spring MVC / Spring Boot) - 支持 JAX-RS 注解识别 (Jersey, RESTEasy) - 支持 Swagger 和 SpringDoc 注解解析 - 自动识别项目配置(端口、上下文路径等) ### 🎨 自定义主题 - 支持多种图标主题(默认、可爱等) - 可自定义 HTTP 方法图标 - 提供 SVG 和 PNG 格式支持 ### ⚡ 高效操作 - 右键菜单支持复制 API 路径、完整 URL - 支持快速导航到方法、类 - 提供当前类 RESTful 接口查看功能 - 智能缓存机制,提升响应速度 ### ⚙️ 灵活配置 - 丰富的配置选项 - 支持容器上下文路径和端口配置 - 可配置重定向最大次数等参数 - 支持扫描时包含库文件选项 --- ## 🛠️ 技术栈 ### 核心框架 - **IntelliJ Platform SDK**: IntelliJ IDEA 插件开发框架 - **Java 17**: 主要开发语言 - **Kotlin 1.9.24**: 部分功能使用 Kotlin 实现 ### 构建工具 - **Gradle**: 项目构建和依赖管理 - **IntelliJ Gradle Plugin**: IntelliJ 插件构建插件 ### 第三方库 - **Hutool 5.8.40**: Java 工具类库,提供各种实用工具 - **Dom4j 2.2.0**: XML 解析库,用于解析项目配置文件 ### 开发工具 - **IntelliJ IDEA 2024.1+**: 开发环境 - **JUnit 4.13.2**: 单元测试框架 --- ## 📁 项目结构 ``` RestfulTool-Plus/ ├── src/ │ └── main/ │ ├── java/ │ │ └── com/github/restful/tool/ │ │ ├── actions/ # 动作处理器 │ │ │ ├── copy/ # 复制相关动作 │ │ │ └── dialog/ # 对话框相关动作 │ │ ├── annotation/ # 注解处理 │ │ │ ├── JaxrsHttpMethodAnnotation.java │ │ │ └── SpringHttpMethodAnnotation.java │ │ ├── beans/ # 数据模型 │ │ │ ├── Request.java # 请求模型 │ │ │ ├── HttpMethod.java # HTTP 方法枚举 │ │ │ └── settings/ # 设置相关模型 │ │ ├── configuration/ # 配置管理 │ │ │ ├── RestfulSetting.java │ │ │ └── RestfulSettingConfigurable.java │ │ ├── lifecycle/ # 生命周期管理 │ │ │ └── ProjectStartupActivity.java # 项目启动活动 │ │ ├── service/ # 服务层 │ │ │ ├── CacheService.java # 缓存服务 │ │ │ ├── Notify.java # 通知服务 │ │ │ ├── ToolWindowService.java │ │ │ ├── impl/ # 服务实现 │ │ │ └── topic/ # 消息主题 │ │ ├── utils/ # 工具类 │ │ │ ├── RequestUtil.java # 请求工具 │ │ │ ├── RestUtil.java # REST 工具 │ │ │ ├── scanner/ # 扫描器 │ │ │ │ ├── SpringHelper.java │ │ │ │ └── JaxrsHelper.java │ │ │ └── xml/ # XML 转换器 │ │ └── view/ # 视图层 │ │ ├── components/ # UI 组件 │ │ ├── icon/ # 图标管理 │ │ ├── search/ # 搜索功能 │ │ └── window/ # 窗口管理 │ └── resources/ │ ├── icons/ # 图标资源 │ │ └── method/ # HTTP 方法图标 │ │ ├── default/ # 默认主题 │ │ └── cute/ # 可爱主题 │ ├── messages/ # 国际化资源 │ │ ├── RestfulToolBundle.properties │ │ └── RestfulToolBundle_zh.properties │ ├── META-INF/ │ │ └── plugin.xml # 插件配置文件 │ └── tips/ # 提示资源 ├── build.gradle # Gradle 构建配置 ├── settings.gradle # Gradle 设置 ├── gradlew # Gradle Wrapper (Unix) ├── gradlew.bat # Gradle Wrapper (Windows) └── README.md # 项目说明文档 ``` --- ## 📦 目录结构说明 ### actions/ - 动作处理器 处理用户操作,如刷新、复制、导航等动作。 - `copy/`: 复制相关动作(复制 API 路径、完整 URL 等) - `dialog/`: 对话框相关动作(当前类树视图等) - `RefreshAction.java`: 刷新动作 - `ScanFilterAction.java`: 扫描过滤动作 - `WithLibraryAction.java`: 包含库文件动作 ### annotation/ - 注解处理 识别和处理 RESTful 相关的注解。 - `SpringHttpMethodAnnotation.java`: Spring 注解处理 - `JaxrsHttpMethodAnnotation.java`: JAX-RS 注解处理 ### beans/ - 数据模型 定义项目使用的数据模型和枚举。 - `Request.java`: RESTful 请求模型 - `HttpMethod.java`: HTTP 方法枚举 - `ModuleTree.java`: 模块树模型 - `ClassTree.java`: 类树模型 ### configuration/ - 配置管理 管理插件配置和设置界面。 - `RestfulSetting.java`: 设置状态管理 - `RestfulSettingConfigurable.java`: 设置界面配置 ### lifecycle/ - 生命周期管理 处理项目生命周期事件。 - `ProjectStartupActivity.java`: 项目启动时自动扫描接口 ### service/ - 服务层 提供各种业务服务。 - `CacheService.java`: 缓存服务接口 - `Notify.java`: 通知服务接口 - `ToolWindowService.java`: 工具窗口服务接口 - `impl/`: 服务实现类 - `topic/`: 消息总线主题 ### utils/ - 工具类 提供各种实用工具方法。 - `RequestUtil.java`: 请求相关工具(核心工具) - `RestUtil.java`: REST 相关工具 - `scanner/`: 接口扫描器 - `SpringHelper.java`: Spring 框架扫描 - `JaxrsHelper.java`: JAX-RS 框架扫描 - `ProjectConfigUtil.java`: 项目配置读取 - `SwaggerUtil.java`: Swagger 注解解析 ### view/ - 视图层 UI 组件和窗口管理。 - `components/`: UI 组件(如 JSON 编辑器) - `icon/`: 图标主题管理 - `search/`: 搜索功能实现 - `window/`: 工具窗口管理 - `frame/`: 窗口框架组件 - `options/`: 选项界面 --- ## 🚀 安装 ### 方式一:插件市场安装(推荐) 1. 打开 IntelliJ IDEA 2. 进入 `Settings` > `Plugins` 3. 搜索 `RestfulTool-Plus` 4. 点击 `Install` 安装 ### 方式二:手动安装 1. 从 [JetBrains Plugin Repository](https://plugins.jetbrains.com/plugin/29496-restfultool-plus/) 下载插件包 2. 在 IDEA 中进入 `Settings` > `Plugins` 3. 点击 ⚙️ > `Install Plugin from Disk...` 4. 选择下载的插件包安装 ### 方式三:本地构建安装 ```bash # 克隆项目 git clone https://github.com/ynx-official/restful-tool-plus.git cd restful-tool-plus # 构建插件 ./gradlew buildPlugin # 运行调试 ./gradlew runIde ``` --- ## 📖 使用指南 ### 导航功能 - **搜索接口**: `Navigate` > `Request Service` - **快捷键**: `Ctrl + Alt + /` (默认) - **修改快捷键**: `Settings` > `Keymap` > `Plug-ins` > `RestfulTool` ### 工具窗口 - **打开窗口**: `View` > `Tool Windows` > `RestfulTool-Plus` - **或点击**: 右侧工具栏的 `RestfulTool-Plus` 图标 ### HTTP 测试 1. 在服务树中选择接口 2. 右侧显示 HTTP 请求测试界面 3. 编辑请求头、请求体 4. 点击发送按钮发送请求 5. 查看响应结果 ### 图标自定义 支持自定义 HTTP 方法图标: 1. 准备 16x16 的 SVG 或 PNG 图标文件 2. 放入 `/icons/method/{图标主题名}` 目录 3. 图标命名规则: | 文件名 | 说明 | | :--- | :--- | | `GET.[svg,png]` | GET 方法的默认图标 | | `GET_select.[svg,png]` | GET 方法的选中图标 | | `POST.[svg,png]` | POST 方法的默认图标 | | `POST_select.[svg,png]` | POST 方法的选中图标 | | `${HttpMethod}[_select].[svg,png]` | 对应 HTTP 方法的(选中)图标 | 参考示例:`/icons/method/default` 或 `/icons/method/cute` ### 配置管理 进入 `Settings` > `Tools` > `RestfulTool-Plus` 配置: - 图标主题选择 - HTTP 工具默认配置 - 扫描选项配置 - 其他高级选项 --- ## 🔧 开发说明 ### 环境要求 - **JDK**: 17+ - **IntelliJ IDEA**: 2024.1+ - **Gradle**: 7.0+ (项目包含 Gradle Wrapper) ### 构建命令 ```bash # 构建插件 ./gradlew buildPlugin # 运行调试 ./gradlew runIde # 清理构建 ./gradlew clean # 运行测试 ./gradlew test ``` ### 项目特点 - **统一数据源**: 所有功能使用 `RequestUtil.getAllRequests()` 作为统一数据源 - **智能缓存**: 项目启动时自动扫描并缓存,避免重复扫描 - **异步处理**: 使用 IntelliJ Platform 的异步 API,不阻塞 UI - **消息总线**: 使用 IntelliJ Platform 的消息总线进行组件通信 --- ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request! ### 贡献方式 - **报告 Bug**: 在 [Issues](https://github.com/ynx-official/restful-tool-plus/issues) 中报告问题 - **功能建议**: 在 [Issues](https://github.com/ynx-official/restful-tool-plus/issues) 中提出功能建议 - **代码贡献**: Fork 项目,创建分支,提交 PR - **文档完善**: 帮助完善文档和示例 ### 开发规范 - 遵循 Java 编码规范 - 添加必要的注释 - 保持代码风格一致 - 提交前运行测试 --- ## 📄 许可证 本项目基于 [MIT License](LICENSE) 许可证开源。 --- ## 🙏 致谢 感谢以下项目的贡献: - **第一版**: [RESTFulToolkit](https://plugins.jetbrains.com/plugin/10292-restfultoolkit/) - 原版插件 - **第二版**: [Yuonsa/RestfulTool](https://github.com/Yuonsa/RestfulTool) - 社区维护版本 --- ## 📞 联系方式 - **GitHub**: [restful-tool-plus](https://github.com/ynx-official/restful-tool-plus) - **Gitee**: [restful-tool-plus](https://gitee.com/ynx520/restful-tool-plus) - **插件市场**: [RestfulTool-Plus](https://plugins.jetbrains.com/plugin/29496-restfultool-plus/) --- **⭐ 如果这个项目对你有帮助,请给个 Star 支持一下!**