公有云开放 API
CatPull 公有云提供了一套基于 app_id + app_key 验证的开放 API,允许第三方应用(如管理台)通过密钥认证来操作项目数据。
认证方式
所有开放 API 均使用 AppKey 认证,需要在请求中携带 app_id 和 app_key 参数:
- GET 请求:通过 URL Query 参数传递
app_id和app_key - POST 请求:通过请求体 JSON 传递
app_id和app_key
获取凭证
app_id 和 app_key 在用户注册时自动生成,可在管理台的「控制台 → AppID / AppKey」区域查看。
安全提示
app_key 是敏感凭证,非必要时请勿在前端代码中暴露或提交到版本控制系统。建议通过后端代理调用开放 API。
项目管理
获取项目列表
获取当前用户的项目列表(含页面数量),支持分页和状态过滤。
curl 示例
bash
curl -G "https://api.catpull.com/api/open/project/list" \
--data-urlencode "app_id=6001a07e84ab801351143019b1c07049" \
--data-urlencode "app_key=cp_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6" \
--data-urlencode "status=1" \
--data-urlencode "page=1" \
--data-urlencode "pageSize=12"参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| app_id | string | ✅ | 应用ID |
| app_key | string | ✅ | 应用密钥 |
| status | number | ❌ | 项目状态:1=正常(默认),0=回收站 |
| page | number | ❌ | 页码,默认 1 |
| pageSize | number | ❌ | 每页数量,默认 12 |
响应
json
{
"status": 200,
"message": "success",
"data": {
"rows": [
{
"app_uid": "app_a1b2c3d4",
"user_id": 10001,
"app_name": "我的项目",
"app_description": "项目描述",
"app_logo_color": "#1476ff",
"app_category": "ecommerce",
"app_platform": "uniapp",
"app_status": 1,
"delete_time": 0,
"page_count": 5,
"create_time": "2026-04-10 13:04:56",
"update_time": "2026-04-11 09:30:00"
}
],
"total": 15,
"page": 1,
"pageSize": 12
}
}创建项目
创建一个新项目。
curl 示例
bash
curl -X POST "https://api.catpull.com/api/open/project/create" \
-H "Content-Type: application/json" \
-d '{
"app_id": "6001a07e84ab801351143019b1c07049",
"app_key": "cp_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6",
"app_name": "我的新项目",
"app_description": "项目描述信息",
"app_logo_color": "#1476ff",
"app_category": "ecommerce",
"app_platform": "uniapp"
}'参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| app_id | string | ✅ | 应用ID |
| app_key | string | ✅ | 应用密钥 |
| app_name | string | ✅ | 项目名称(至少3个字符,不含空格) |
| app_description | string | ❌ | 项目描述 |
| app_logo_color | string | ❌ | Logo配色,默认 #1476ff |
| app_category | string | ❌ | 项目类型,默认 other |
| app_platform | string | ❌ | 平台类型,默认 uniapp |
app_category 可选值
| 值 | 说明 |
|---|---|
| ecommerce | 电商 |
| website | 企业官网 |
| admin | 管理系统 |
| marketing | 营销活动 |
| social | 社交/社区 |
| tool | 工具/效率 |
| other | 其他 |
app_platform 可选值
| 值 | 说明 |
|---|---|
| uniapp | uni-app(默认) |
| h5 | H5 |
| web | Web |
响应
json
{
"status": 200,
"message": "success",
"data": {
"app_uid": "app_e5f6g7h8",
"app_name": "新项目",
"app_platform": "uniapp",
"app_status": 1,
"page_count": 0,
"create_time": "2026-04-11 10:00:00",
"update_time": "2026-04-11 10:00:00"
}
}删除项目(移入回收站)
将项目移入回收站,7天后自动清除。
curl 示例
bash
curl -X POST "https://api.catpull.com/api/open/project/delete" \
-H "Content-Type: application/json" \
-d '{
"app_id": "6001a07e84ab801351143019b1c07049",
"app_key": "cp_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6",
"app_uid": "app_a1b2c3d4"
}'参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| app_id | string | ✅ | 应用ID |
| app_key | string | ✅ | 应用密钥 |
| app_uid | string | ✅ | 项目UID |
响应
json
{
"status": 200,
"message": "项目已移入回收站",
"data": {}
}还原项目
从回收站恢复项目到正常状态。
curl 示例
bash
curl -X POST "https://api.catpull.com/api/open/project/restore" \
-H "Content-Type: application/json" \
-d '{
"app_id": "6001a07e84ab801351143019b1c07049",
"app_key": "cp_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6",
"app_uid": "app_a1b2c3d4"
}'参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| app_id | string | ✅ | 应用ID |
| app_key | string | ✅ | 应用密钥 |
| app_uid | string | ✅ | 项目UID |
响应
json
{
"status": 200,
"message": "项目已还原",
"data": {}
}彻底删除项目
永久删除项目及其所有页面数据,不可恢复。
curl 示例
bash
curl -X POST "https://api.catpull.com/api/open/project/destroy" \
-H "Content-Type: application/json" \
-d '{
"app_id": "6001a07e84ab801351143019b1c07049",
"app_key": "cp_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6",
"app_uid": "app_a1b2c3d4"
}'参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| app_id | string | ✅ | 应用ID |
| app_key | string | ✅ | 应用密钥 |
| app_uid | string | ✅ | 项目UID |
响应
json
{
"status": 200,
"message": "项目已彻底删除",
"data": {}
}设计器接入
获取设计器访问地址
获取指定项目的设计器访问 URL,URL 中包含认证参数,可直接在新窗口打开。
curl 示例
bash
curl -X POST "https://api.catpull.com/api/open/project/designerUrl" \
-H "Content-Type: application/json" \
-d '{
"app_id": "6001a07e84ab801351143019b1c07049",
"app_key": "cp_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6",
"app_uid": "app_a1b2c3d4"
}'参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| app_id | string | ✅ | 应用ID |
| app_key | string | ✅ | 应用密钥 |
| app_uid | string | ✅ | 项目UID |
响应
json
{
"status": 200,
"message": "success",
"data": {
"url": "http://localhost:5173/?app_id=xxx&app_platform=uniapp&sign=eyJhbGciOiJIUzI1NiIs..."
}
}使用方式
获取到 URL 后,可通过 window.open(url, '_blank') 在新标签页打开设计器。URL 中的 sign 参数为 JWT 令牌,有效期 2 天。
存储空间
获取存储空间信息
获取当前用户的存储空间使用情况,已使用量从 COS 实时查询。
curl 示例
bash
curl -G "https://api.catpull.com/api/open/storageInfo" \
--data-urlencode "app_id=6001a07e84ab801351143019b1c07049" \
--data-urlencode "app_key=cp_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6"参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| app_id | string | ✅ | 应用ID |
| app_key | string | ✅ | 应用密钥 |
响应
json
{
"status": 200,
"message": "success",
"data": {
"used": 1048576,
"total": 1073741824
}
}| 字段 | 说明 |
|---|---|
| used | 已使用字节数 |
| total | 总额度字节数(默认 256MB = 268435456) |
错误码
| 状态码 | 说明 |
|---|---|
| 200 | 请求成功 |
| 401 | 认证失败(缺少参数、密钥无效) |
| 403 | 权限不足(密钥未启用) |
| 500 | 服务器内部错误 |
错误响应格式
json
{
"status": 401,
"message": "应用密钥无效",
"data": {}
}