RPC 上声明路由
在 Protobuf 的 rpc 定义中用 hope.swagger.operation 直接声明 post 或 get 路由与描述,接口定义与 HTTP 语义合并在一处,减少两份文档各自维护带来的不一致。
拖动滑块完成拼图,通过后发送验证码
独立第三方 AI 评测平台 · 只用实测数据
在 Protobuf RPC 上直接声明路由,自动生成 OpenAPI、Spring 控制器与客户端 SDK 的 IDEA 插件
官网地址 https://apihug.com/
ApiHug 是一套 API 设计与开发的工具组合,包含 SDK 与 IntelliJ IDEA 插件两部分,核心思路是把 REST 路由、方法、分页等信息直接写在 Protobuf 的 RPC 定义里,再据此生成 OpenAPI 文档、Spring 控制器和客户端 SDK。插件最新版本为 0.4.4,发布于 2024-06-14;SDK 最新版本为 0.8.6,发布于 2024-04-14。其优势在于省去接口文档与代码之间的手工同步,并提供 40+ 内置 mock 数据类型;短板是版本迭代距今已有一段时间,官网未公开定价与授权方式。
ApiHug 是一套面向 API 设计与开发的工具组合,由 SDK 和 IntelliJ IDEA 插件组成。它把 REST 接口的路由、HTTP 方法、分页等描述直接声明在 Protobuf 的 RPC 定义上,而不是另外维护一份接口文档。
从官网首页可以确认,工具会读取这些声明并生成 OpenAPI 描述、Spring 控制器与客户端 SDK。例如在 service 级别通过 hope.swagger.svc 指定 path 与 description,在 rpc 级别通过 hope.swagger.operation 声明 post 或 get 路由、是否分页。
字段层面还支持 hope.swagger.field 注解,可设置描述、示例值、是否允许为空、最大长度,以及 mock 数据来源。官网内置了 40+ 种 nature 类型用于生成 mock 数据,覆盖姓名、邮箱、电话、URL、日期、国家、货币、电影名等常见场景。
在 Protobuf 的 rpc 定义中用 hope.swagger.operation 直接声明 post 或 get 路由与描述,接口定义与 HTTP 语义合并在一处,减少两份文档各自维护带来的不一致。
依据 RPC 上的声明自动生成 OpenAPI 描述、Spring 控制器和客户端 SDK,开发者不需要再手写接口文档或客户端调用代码,改动协议定义后重新生成即可。
service 级别通过 hope.swagger.svc 统一配置 path 与 description,例如把 OrderService 下的接口统一挂在 /order 路径下,服务与路由前缀的对应关系清晰可查。
在 rpc 声明里通过 pageable 字段标记该接口是否分页,例如查询订单的 Query 接口可声明 pageable 为 true,生成端据此产出对应的分页参数与结构。
hope.swagger.field 支持设置描述、示例值、是否允许空值与 max_length 约束。示例中电影名 max_length 为 64,year 字段示例值为 2022,文档与校验信息可一并声明。
枚举值可通过 hope.constant.field 映射业务 code 与展示 message,例如 MovieLevel 的 PG_13 映射 code 1、message 为 PG-13,适合需要给前端返回稳定错误码或状态码的场景。
提供 40+ 种 nature 类型用于生成 mock 数据,覆盖动物名、头像 URL、书名、颜色、国家、货币、日期时间、邮箱、电话、URL 等,字段声明 mock nature 即可产出示例数据。
当你的后端已经用 Protobuf 定义 RPC,并且希望接口文档、Spring 控制器与客户端 SDK 都由定义直接产出时,ApiHug 的思路是契合的,能省掉文档与代码之间的手工同步。如果团队主要写 REST 而不用 Protobuf,或者技术栈不是 Spring,这套工具的价值会打折扣。另外插件最新版本停在 0.4.4、SDK 停在 0.8.6,选择前需要确认当前迭代节奏是否满足项目需要。
接口已用 Protobuf 定义 RPC,希望路由、文档与代码由同一份定义产出,可直接在 rpc 上声明 post 或 get 路由。
使用 Spring 并需要自动生成控制器与客户端 SDK,ApiHug 会依据声明产出对应代码,减少手写样板。
字段声明 mock nature 后可生成示例数据,40+ 种类型覆盖姓名、邮箱、电话、日期等,适合联调阶段使用。
不使用 Protobuf 的技术栈需要先引入 Protobuf 定义方式才能用上生成能力,改造成本需要提前评估。
插件最新版本为 0.4.4、发布于 2024-06-14,SDK 最新为 0.8.6、发布于 2024-04-14,对更新频率敏感的项目需先确认迭代节奏。
官网未公开定价与授权方式,有明确采购流程要求的团队需要先确认费用与授权范围再决定是否引入。
| 指标 | 数值 | 数据来源 |
|---|---|---|
| 内置 mock nature 类型数 | 40+ | 官网首页 |
| 插件最新版本 | 0.4.4 | 官网 changelog |
| 插件最新版本发布日期 | 2024-06-14 | 官网 changelog |
| SDK 最新版本 | 0.8.6 | 官网 changelog |
| SDK 最新版本发布日期 | 2024-04-14 | 官网 changelog |
| 字段 max_length 示例值 | 64 | 官网首页字段注解示例 |
它是一套 API 设计与开发工具,由 SDK 和 IntelliJ IDEA 插件组成。核心能力是把 REST 路由、HTTP 方法、分页等信息直接声明在 Protobuf 的 RPC 定义上,再据此生成 OpenAPI 描述、Spring 控制器和客户端 SDK。
官网 changelog 分两条版本线:插件最新为 0.4.4,发布于 2024-06-14;SDK 最新为 0.8.6,发布于 2024-04-14。插件历史版本还包括 0.4.0(2024-04-14)与 0.2.0(2024-02-22),SDK 历史版本还包括 0.7.8(2024-04-12)。
在 rpc 上用 hope.swagger.operation 声明,例如 post 指定 /place、get 指定 /query,并可附加 description。service 级别则用 hope.swagger.svc 配置统一路径,例如把 OrderService 挂在 /order 路径下。
可以。官网列出 40+ 种内置 nature 类型用于生成 mock 数据,覆盖姓名、邮箱、电话、URL、日期时间、国家、货币、电影名等。字段声明对应的 nature 后即可产出示例数据,例如电影名字段可设为 MOVIE。
可以。枚举项通过 hope.constant.field 映射 code 与 message,例如 MovieLevel 中 PG_13 映射 code 为 1、message 为 PG-13,适合需要给前端返回稳定状态码的场景。
官网未公开定价与授权方式,也未见免费额度说明,费用与授权范围需要另行确认后再决定是否引入。
| 工具 | 编辑评分 | 价格 | 核心功能 | 平台 |
|---|---|---|---|---|
| ApiHug本工具 | 4.0 | 官网未公开定价信息 | RPC 上声明路由;生成 OpenAPI 与控制器;服务级路由配置;分页声明 | IntelliJ IDEA 插件 |
| IntelliJ IDEA 插件平台内置工具本工具 | — | 未标价 | ApiHug 以 IntelliJ IDEA 插件形式分发,官网提供 Install the IntelliJ plugin 的安装入口,与 IDE 自带工具同处一个插件环境。 | IntelliJ IDEA |
| OpenAPI 描述生成工具本工具 | — | 未标价 | ApiHug 会从 Protobuf RPC 声明生成 OpenAPI,与直接手写或另用工具生成 OpenAPI 描述的做法形成对照。 | OpenAPI |
| Spring 控制器代码生成工具本工具 | — | 未标价 | ApiHug 会依据 RPC 声明生成 Spring 控制器与客户端 SDK,与手工编写控制器的流程形成对照。 | Spring |
官网首页与 changelog 只明确了 ApiHug 自身与 IntelliJ IDEA 插件、Spring、OpenAPI 的关系,未提及任何其他产品名称。因此上面的对照项是按生成物类型归纳的用途对照,不是一个可直接比较的功能清单。如果你的后端已用 Protobuf 定义 RPC,且希望控制器与 SDK 由同一份定义产出,ApiHug 的组合方式更贴合;如果项目不使用 Protobuf,或不需要 Spring 控制器与客户端 SDK 生成,那么引入 ApiHug 的收益有限。