快速开始
创建一个 ApiHug 项目,理解模块结构,并跑通 contract-first 工具链。
这一页带你从空目录走到一个可运行的 ApiHug 演示项目。路径很直接:先准备环境,再生成项目,接着跑通 wire、和应用启动,最后检查生成出来的 OAS 接口文档。
ApiHug 3.x 面向 Spring Boot 4.0 及以上版本。升级老项目之前,建议先阅读 Spring Boot 4.0 迁移指南。
第一次体验通常会完成以下几件事:
wire、然后应用启动ApiHug 为常见 shell 提供了启动脚本。
iex (irm 'https://raw.githubusercontent.com/apihug/apihug.github.io/main/helper/apihug-install.ps1')如果你是在现有 Spring 项目上升级,请先阅读 Spring Boot 4.0 Migration Guide,再推进 ApiHug SDK 升级。
先准备好基础环境:
ApiHug - API design Copilot 插件先从 JetBrains Marketplace 安装插件,然后重启 IntelliJ。
如果你后续更偏好命令行工作流,可以再配合 ApiHug REPL 使用。首次上手时,IntelliJ 向导仍然是理解项目结构最快的入口。
File > Settings > PluginsApiHug
IntelliJ 向导会直接给出一个适合 contract-first 开发的起点。
File > New > ProjectApiHug
设置 package、项目名、描述、SDK 选项、数据库厂商、缓存和端口。
第一次使用时,除非团队已经有固定模板,否则建议先保留默认配置。
一个典型的 ApiHug 项目通常从两个模块开始:
order
|- order-app
`- order-app-proto
order 是根工作区order-app 是手写业务逻辑所在的应用模块order-app-proto 是驱动生成的契约模块这一段的心智模型和 Spring Initializr 一致:先选项目类型,再按需加入像 Spring Web 这样的 starter。
完成后点击 Create -> Open Project。
如果 IntelliJ 没有自动导入,请手动按 Gradle 项目重新加载。正常情况下你会看到 demo-app 和 demo-app-proto 两个模块。
升级已有项目时,先更新 gradle/libs.versions.toml,再重新加载 Gradle,确保 SDK 版本一致生效。
最小示例可以参考 simplest-demo:
+---gradle
| | libs.versions.toml (1)
+---demo-app (2)
| | build.gradle
| \---src
| \---main
| +---java
| | \---com
| | \---apihug
| | \---demo
| | | DemoAppApplication.java
| | +---domain
| | \---service
| \---resources
| | hope-stub.json (3)
|
+---demo-app-proto (4)
| | build.gradle
| \---src
| \---main
| +---proto
| | \---com
| | \---apihug
| | \---demo
| | \---proto
| | +---api
| | \---infra
| \---resources
| hope-wire.json (5)
| 文件 | 作用 |
|---|---|
(1) libs.versions.toml | 版本目录与插件别名配置 |
(2) demo-app | 应用模块与手写业务逻辑 |
(3) hope-stub.json | 应用模块的生成配置 |
(4) demo-app-proto | protobuf 契约模块与 wire 输出 |
(5) hope-wire.json | proto 模块元数据 |
# versions
apihug = "<current-version>"
springBoot = "4.0.0"
springDependency = "1.1.7"
# libraries
apihugBom = { group = "com.apihug", name = "it-bom", version.ref = "apihug" }
# plugins
springBoot = { id = "org.springframework.boot", version.ref = "springBoot" }
springDependency = { id = "io.spring.dependency-management", version.ref = "springDependency" }wire 负责校验 proto 模块,并生成中立的契约构建输出。
README.md > 0. Build Allgradlew clean build -x test -x wireTest -x stubTestdemo-app-proto 下的生成结果
README.md > 3. Run Applicationgradlew demo-app:bootRun
Application 'demo-app' is running! Access URLs:
Local http://localhost:18089/
OAS http://localhost:18089/v3/api-docs
Actuator http://localhost:18089/management
Api-Errors http://localhost:18089/hope/meta/errors
Api-Dictionaries http://localhost:18089/hope/meta/dictionaries
Api-Authorities http://localhost:18089/hope/meta/authorities
Profile(s) dev
把控制台里的 /v3/api-docs 地址复制到浏览器,确认生成出来的接口面没有问题。
正常情况下,ApiHug Tool Window 会停靠在 IDE 右侧。如果没有出现,可以从 ApiHug > ApiHug Designer 手动打开。
演示项目跑通之后,建议继续看: