主题
上传版本
为设计稿(原型)上传一个新版本。支持用户 JWT 或组织 API Key 两种鉴权。
端点
http
POST /api/designs/:id/versions
Authorization: Bearer <JWT 或 pk_...>
Content-Type: multipart/form-data鉴权
请求头 Authorization: Bearer <token>:
- token 以
pk_开头 → 按 API Key 鉴权,且该 Key 必须属于设计稿所在组织(否则 403)。 - 否则按用户 JWT 鉴权,调用者必须是设计稿所属组织成员(否则 403)。
表单字段
| 字段 | 场景 | 说明 |
|---|---|---|
file / zip | 脚本 / API Key | 单个 zip 包,自动解压托管。(file 与 zip 等价) |
files + paths + kind | 网页多文件 | 多个文件 + 同序相对路径 + 类型("zip" 或 "files");paths 与 files 数量须一致。 |
单个 .zip 一律按压缩包解压(即便 kind=files 也如此),避免存成不可预览的裸 zip。 上传总大小上限 100MB。
示例(API Key 上传 zip)
bash
curl -X POST "https://developer.yunku.live/api/designs/<id>/versions" \
-H "Authorization: Bearer pk_xxxxxxxx_xxxx" \
-F "file=@./dist.zip"响应 201
json
{
"version": {
"id": "...",
"designId": "...",
"number": 1,
"createdAt": "2026-06-12T00:00:00.000Z"
}
}错误
| 状态 | 错误码 | 含义 |
|---|---|---|
| 401 | UNAUTHORIZED | 缺少令牌,或令牌无效 / 已吊销 |
| 403 | FORBIDDEN | API Key 不属于该组织,或 JWT 用户非成员 |
| 404 | NOT_FOUND | 设计稿 id 不存在 |
| 400 | BAD_REQUEST | 非 multipart/form-data;缺少文件字段;paths 与 files 数量不一致;kind=zip 时上传多个文件 |
| 413 | PAYLOAD_TOO_LARGE | 超出 100MB 上限 |
| 400 | BAD_REQUEST | 触发 zip 解压防护(路径穿越 / zip bomb) |
完整错误码见 错误码。