hap-api-doc-updater
SKILL.md
HAP API 文档更新器
此技能专门用于维护和更新明道云 HAP (Host Application Platform) 的 OpenAPI 3.0 接口文档,支持中英文双语文档的同步管理。
使用场景
在以下情况下使用此技能:
- 用户需要在 HAP 文档中新增接口
- 用户需要修改现有接口的定义、参数或响应结构
- 用户需要删除废弃的接口
- 用户需要确保中英文文档保持同步
- 用户提到"HAP API 文档"、"接口文档"、"OpenAPI"、"新增接口"、"更新接口"等关键词
文档结构
HAP API 文档项目包含两类文档:
1. 组织授权 API 文档
位于项目根目录:
en/- 英文版组织授权接口文档zh-Hans/- 中文版组织授权接口文档
2. 应用 API 文档 (v3-beta)
位于 application 目录:
application/en/- 英文版应用接口文档application/zh-Hans/- 中文版应用接口文档
每个文档目录包含:
openapi.yaml # 主文件,定义 tags、paths 路由
description.md # 文档描述
index.html # Redoc 预览页面
paths/ # 接口定义目录
├── user/ # 按功能模块分类
├── department/
└── ...
schemas/ # 数据模型目录
├── base/ # 基础模型
├── user/ # 用户相关模型
└── ...
工作流程
新增接口
-
确定接口类型和位置
- 询问用户接口属于哪个模块 (user/department/app 等)
- 确定是组织 API 还是应用 API
- 确定 HTTP 方法 (GET/POST/PUT/DELETE 等)
-
收集接口信息
- 接口路径 (如
/v2/user/getExternalPortalUsers) - 接口摘要和描述
- 请求参数 (query/body/path parameters)
- 响应结构
- 是否需要鉴权参数 (appKey, sign, timestamp 等)
- 接口路径 (如
-
创建文件结构
对于每个语言版本 (en 和 zh-Hans),执行以下操作:
a. 创建 path 定义文件
- 位置:
paths/{module}/{operationName}.yaml - 包含: HTTP 方法、tags、summary、description、parameters/requestBody、responses
- 参考
references/path_template.yaml中的模板
b. 创建 schema 文件 (如需要)
- 请求 schema:
schemas/{module}/{operationName}Request.yaml - 响应 schema:
schemas/{module}/{operationName}Response.yaml - 数据对象:
schemas/{module}/{objectName}.yaml - 参考
references/schema_template.yaml中的模板
c. 更新 openapi.yaml
- 在 paths 部分添加新路由
- 如果有特殊的 server 配置,添加 servers 字段
- 确保按模块分组,保持文件整洁
- 位置:
-
验证一致性
- 确保中英文版本结构一致
- 检查所有 $ref 引用路径正确
- 验证必填字段在 required 数组中
修改接口
-
定位文件
- 使用 Grep 工具搜索接口路径或 operationId
- 找到对应的 path 文件和相关 schema 文件
-
同步修改
- 同时修改中英文版本的对应文件
- 保持字段结构一致,仅翻译 description 和 example
-
更新关联文件
- 如果修改了 schema 引用,检查其他使用该 schema 的接口
- 如果修改了路径,同步更新 openapi.yaml
删除接口
-
从 openapi.yaml 中移除路由
- 同时删除中英文版本
-
删除相关文件
- 删除 paths 文件
- 检查 schemas 是否被其他接口使用,如果没有则删除
-
验证引用
- 确保没有其他地方引用已删除的文件
同步中英文文档
-
对比结构
- 检查 openapi.yaml 中的 paths 是否一致
- 对比文件目录结构
-
同步差异
- 复制缺失的文件
- 翻译描述性文本
- 保持技术字段 (type, format, required 等) 完全一致
重要规范
命名规范
- 文件命名: 使用驼峰命名法,如
getExternalPortalUsers.yaml - operationId: 与文件名保持一致
- schema 文件: 使用描述性名称,如
externalPortalUser.yaml
路径引用规范
- 从 openapi.yaml 引用 paths:
'./paths/{module}/{file}.yaml' - 从 paths 引用 schemas:
'../../schemas/{module}/{file}.yaml' - 从 schemas 引用其他 schemas:
'./{file}.yaml'
请求/响应规范
GET 请求: 使用 parameters 定义查询参数
parameters:
- name: pageIndex
in: query
required: true
schema:
type: integer
POST 请求: 使用 requestBody 定义请求体
requestBody:
required: true
content:
application/json:
schema:
$ref: '../../schemas/user/requestSchema.yaml'
鉴权参数
组织 API 通常需要以下基础参数:
appKey- 应用密钥sign- 签名timestamp- 时间戳projectId- 项目 ID
可以引用基础 schema: $ref: ../../schemas/base/request/baseQueryAppkey.yaml
响应结构
标准响应格式:
type: object
properties:
code:
type: integer
description: 状态码,1表示成功
message:
type: string
description: 状态描述
data:
type: object/array
description: 返回数据
工作检查清单
在完成文档更新后,执行以下检查:
- 中英文版本都已更新
- openapi.yaml 中的路由已添加/修改/删除
- paths 文件已创建/修改/删除
- 必要的 schemas 文件已创建
- 所有 $ref 引用路径正确
- 必填参数在 required 数组中声明
- description 提供了清晰的说明
- example 提供了有效的示例值
- 中英文字段结构完全一致 (仅描述不同)
参考资料
详细的模板和示例请查看:
references/path_templates.md- 接口定义模板references/schema_templates.md- 数据模型模板references/common_patterns.md- 常见模式参考
预览文档
修改完成后,可以使用 Live Server 预览:
- 在 VS Code 中右键点击
zh-Hans/index.html或en/index.html - 选择 "Open With Live Server"
- 浏览器将自动打开并显示 Redoc 渲染的文档
Weekly Installs
5
Repository
garfield-bb/hap…llectionGitHub Stars
12
First Seen
Feb 24, 2026
Security Audits
Installed on
gemini-cli5
github-copilot5
codex5
kimi-cli5
amp5
cursor5