HAP API V3 规范
V3 接口遵循 RESTful 风格,以资源为中心设计 URL,通过请求方法表达操作意图,使用 JSON 格式传递数据。
一、API 组成
一个完整的 API 请求由五部分组成:请求方法、请求地址、鉴权、请求参数、响应参数。
1.1 请求方法(Method)
告诉服务器你要做什么操作。
| 方法 | 含义 | 说明 | 实际案例 |
|---|---|---|---|
GET | 查询 | 获取单条或列表数据,不修改资源 | 获取应用信息、获取行记录详情、获取日志 |
POST | 新建 | 创建新资源,由服务端分配 ID;查询参数复杂时也使用 POST | 新建工作表、新建行记录;获取记录列表(含筛选器) |
PUT | 整体更新 | 替换整个资源,未传字段会被清空 | — |
PATCH | 局部更新 | 只更新传入的字段,其余字段保持不变 | 更新行记录、批量更新行记录 |
DELETE | 删除 | 删除指定资源 | 删除工作表、删除行记录、批量删除 |
1.2 请求地址(Host + URL)
告诉服务器你要操作哪个资源,由 Host 和 URL 拼接而成:
https://api.mingdao.com + /v3/app/worksheets/{worksheet_id}/rows
↑ Host(环境域名) ↑ URL(资源路径)
1.3 鉴权(Authentication)
鉴权用于验证"你是谁、有没有权限",凭证统一放在请求 Header 中,每个请求都必须携带。V3 支持三种鉴权方式:
| 方式 | Header 参数 | 说明 |
|---|---|---|
| AppKey + Sign | HAP-Appkey、HAP-Sign | 应用密钥鉴权,由管理员创建,以应用管理员身份访问数据 |
| PAT | Authorization: Bearer {{access_token}}、HAP-Appid(部分接口必填) | 个人访问凭证(Personal Access Token),自行创建,以个人身份操作,可设定有效期和权限范围 |
| OAuth 2.0 | Authorization: Bearer {{access_token}}、HAP-Appid(部分接口必填) | 用户通过 OAuth 集成完成授权,可配置权限范围,短期有效,支持自动刷新 |
三种方式对比:
| 维度 | AppKey + Sign | PAT | OAuth 2.0 |
|---|---|---|---|
| 创建者 | 管理员 | 个人 | 集成开发者 |
| 操作身份 | 应用管理员 | 个人 | 被授权用户 |
| 有效期 | 长期 | 可设定 | 短期,自动刷新 |
| 适用场景 | 服务端集成 | 个人脚本 / 工具 | 第三方应用集成 |
1.4 请求参数(Input)
不同的请求方法,参数的传递位置也不同。参数分三种位置:
Path 参数 — URL 中的资源标识,必填,直接写在路径里:
/v3/app/worksheets/{worksheet_id}/rows/{row_id}
↑ 必填,工作表 ID ↑ 必填,行记录 ID
Query 参数 — 拼接在 URL ? 后面,适用于 GET 请求的简单条件:
GET /v3/app/worksheets/{worksheet_id}/rows/{row_id}?pageSize=50&pageIndex=1
Body 参数 — 放在请求体里(JSON 格式),适用于 POST、PATCH 请求的复杂数据:
{
"fields": [...],
"triggerWorkflow": true
}
1.5 响应参数(Output)
所有接口统一返回 JSON 格式:
{
"success": true, // 是否成功
"error_code": 1, // 错误码,1 表示成功
"error_msg": "string", // 错误信息
"data": {} // 业务数据,类型为 object 或 Array[object]
}
二、环境地址
| 环境 | Host |
|---|---|
| HAP SaaS 环境 | https://api.mingdao.com |
| 私有部署环境 | {私有部署 host}/api(示例:https://p-demo.mingdaoyun.cn/api) |
三、URL 命名规范
URL 路径以资源层级为核心进行组织,通过路径结构表达资源归属,通过请求方法表达操作意图。
3.1 资源层级
子资源挂在父资源路径下,从左到右逐层嵌套:
/v3/app # 应用(顶级资源)
/v3/app/worksheets # 工作表集合(应用下)
/v3/app/worksheets/{worksheet_id} # 单个工作表
/v3/app/worksheets/{worksheet_id}/rows # 行记录集合(工作表下)
/v3/app/worksheets/{worksheet_id}/rows/{row_id} # 单条行记录
3.2 增删改查
通过请求方法 + 路径共同表达操作意图:
GET /v3/app/worksheets/{worksheet_id}/rows/list # 查列表(复杂筛选用 POST + /list)
GET /v3/app/worksheets/{worksheet_id}/rows/{row_id} # 查详情(路径含 ID)
POST /v3/app/worksheets/{worksheet_id}/rows # 新建(集合路径,无 ID)
PATCH /v3/app/worksheets/{worksheet_id}/rows/{row_id} # 更新(路径含 ID)
DELETE /v3/app/worksheets/{worksheet_id}/rows/{row_id} # 删除(路径含 ID)
3.3 批量操作
集合路径 + /batch,方法区分操作类型:
POST /v3/app/worksheets/{worksheet_id}/rows/batch # 批量新建
PATCH /v3/app/worksheets/{worksheet_id}/rows/batch # 批量更新
DELETE /v3/app/worksheets/{worksheet_id}/rows/batch # 批量删除
3.4 特殊功能
追加功能名,单词或短横线连接:
GET /v3/app/worksheets/{worksheet_id}/rows/pivot # 透视数据(集合级功能)
POST /v3/app/worksheets/{worksheet_id}/rows/{row_id}/share-link # 分享链接(短横线)
GET /v3/app/worksheets/{worksheet_id}/rows/{row_id}/logs # 操作日志
GET /v3/app/worksheets/{worksheet_id}/rows/{row_id}/discussions # 讨论
GET /v3/app/worksheets/{worksheet_id}/rows/{row_id}/relations/{field} # 关联记录
四、参数命名规范
| 位置 | 命名风格 | 示例 |
|---|---|---|
| Header 鉴权参数 | HAP- 前缀 | HAP-Appkey、HAP-Sign、HAP-Appid |