规范
面向大语言模型协作开发的 ApiHug 2.0 架构设计与 Spec-Driven 指南。
从 ApiHug 2.0 开始,项目结构和工具链做了面向 AI 协作的重构。重点包括: 统一插件上下文、简化 proto 类型表达,以及把规范文档放到更靠前的位置。
更新于 2026-01-03
ApiHug 2.0 面向 LLM(大语言模型)驱动的开发工作流进行优化,核心目标是让契约、生成、实现和评审处在同一套可理解的上下文中。对应的三个重点是:
背景:像 google.protobuf.Int32Value 这样的 wrapper 类型会增加 AI 和人类同时理解 proto 的成本,也更容易让生成结果出现不稳定的样式。
推荐做法:尽量使用原生 proto3 基础类型。
| 已废弃或不推荐的类型 | 推荐类型 |
|---|---|
google.protobuf.Int32Value | int32 |
google.protobuf.Int64Value | int64 |
google.protobuf.UInt64Value | uint64 |
google.protobuf.DoubleValue | double |
hope.common.BoolType | bool |
// 不推荐
message OldRequest {
google.protobuf.Int32Value user_id = 1;
hope.common.BoolType is_active = 2;
}
// 推荐
message NewRequest {
int32 user_id = 1;
bool is_active = 2;
}
版本要求:SDK >= 2.1.0-RELEASE
ApiHug 2.0 合并了过去分散的插件和模块结构:
com.apihug.wire、com.apihug.stubproto 模块 + app 模块的拆分默认模式com.apihug.hopeapp 模块里这带来的直接收益是:
gradle/libs.versions.toml
[versions]
apihugVersion = "2.1.0-RELEASE"
[plugins]
hope = { id = "com.apihug.hope", version.ref = "apihugVersion" }
hope-repl = { id = "com.apihug.repl", version.ref = "apihugVersion" }
build.gradle
plugins {
id "java"
alias(libs.plugins.spring.boot)
alias(libs.plugins.spring.dependency)
alias(libs.plugins.hope)
}
hope {
debug = false
verbose = false
// 可选能力
// enableFrontVue = true
// enableMcp = true
}
ApiHug 基于 Protocol Buffers 扩展定义了一组核心规范。当前建议关注四个活跃规范,另保留一个历史兼容规范供旧项目审计使用。
| 规范名称 | 作用范围 | 文档链接 |
|---|---|---|
| API 指令规范 | Service / Method / Message / Field | 查看详情 |
| 数据库指令规范 | Domain Entity / Column | 查看详情 |
| 常量与枚举规范 | Enum / EnumValue | 查看详情 |
| Mock 数据规范 | 测试与示例数据规则 | 查看详情 |
| 版本变更规范 | 旧版兼容注解 | 查看详情 |
api/ 层负责 REST API、请求响应 DTO 与 OpenAPI 表达。domain/ 层负责实体、表结构和数据库语义。infra/ 层负责错误码、常量、共享枚举等基础定义。分层原则
ApiHug 提供了一套围绕规范驱动开发的 BMAD 工作流,用来把需求、契约、实现和评审串起来。
前置条件:安装 ApiHug REPL
| 路径 | 说明 | 适用场景 |
|---|---|---|
/bmad:bmw:workflows:apihug-proto-design | Proto 设计工作流 | 生成 API / Domain / Enum proto |
/bmad:bmw:workflows:apihug-end-to-end | 端到端开发流程 | 从需求走到交付 |
/bmad:bmw:workflows:apihug-project-review | 项目审查工作流 | 做规范检查和优化建议 |
/bmad:bmw:workflows:apihug-app-implement | 应用实现工作流 | 根据 proto 生成并补齐服务实现 |
/bmad:bmw:agents:apihug | ApiHug 智能代理 | 交互式协助编写和评审 proto |
更多说明:
PascalCase,字段用 snake_case。description 等结构化字段表达说明,而不是把关键信息散落在普通注释里。升级到 2.1.0+ 时,建议依次检查:
gradle/libs.versions.toml 移除 hope-wire 与 hope-stubbuild.gradle 中改为 alias(libs.plugins.hope)proto 模块能力合并到当前 app 模块./gradlew clean build 验证升级结果