Skip to content

Collection 管理 API

管理项目的 Collection 元数据、Schema 定义和字段操作。Collection 是项目数据库中的"表"概念,支持树形结构组织(table + folder)。

基础路径

/projects/:projectId/collections

认证方式

所有端点均需要 JWT Bearer TokenAPI Key 认证(combinedAuth 中间件)。

权限说明

请求者必须是项目所有者或项目所属团队的活跃成员。


端点列表

1. 获取 Collection 树结构

GET /projects/:projectId/collections

获取项目的完整 Collection 树结构(包含 table 和 folder 的层级关系)。

Path 参数

参数类型必填说明
projectIdstring项目 ID

响应 200

json
{
  "databaseFolder": [
    {
      "key": "folder-xxx",
      "label": "用户数据",
      "type": "folder",
      "children": [
        {
          "key": "table-xxx",
          "label": "用户表",
          "type": "table"
        }
      ]
    }
  ]
}

错误码

状态码说明
401未认证
404项目不存在或无权访问
500获取 Collection 树失败

2. 创建 Collection

POST /projects/:projectId/collections

创建一个新的 Collection(table 或 folder)。

Path 参数

参数类型必填说明
projectIdstring项目 ID

Body 参数(JSON)

参数类型必填说明
parentKeystring | null父节点 key,null 表示根目录
typestring类型:tablefolder
labelstring显示名称
schemaobject初始 Schema(仅 table 类型有效),格式 { fields: [...] }

响应 201

返回创建的 Collection 节点信息。

错误码

状态码说明
400参数缺失或 type 值不合法
401未认证
404项目不存在、无权访问或父节点不存在
500创建 Collection 失败

3. 获取单个 Collection 详情

GET /projects/:projectId/collections/:collectionId

获取指定 Collection 的详细信息。

Path 参数

参数类型必填说明
projectIdstring项目 ID
collectionIdstringCollection ID(key)

响应 200

返回 Collection 节点详细信息。

错误码

状态码说明
401未认证
404项目不存在、无权访问或 Collection 不存在
500获取 Collection 失败

4. 更新 Collection

PATCH /projects/:projectId/collections/:collectionId

更新 Collection 的名称或移动到其他父节点。

Path 参数

参数类型必填说明
projectIdstring项目 ID
collectionIdstringCollection ID(key)

Body 参数(JSON)

参数类型必填说明
labelstring新的显示名称
parentKeystring | null新的父节点 key,null 表示移到根目录

至少提供 labelparentKey 之一。

响应 200

json
{
  "databaseFolder": [ ... ]
}

返回更新后的完整 Collection 树。

错误码

状态码说明
400未提供任何更新字段
401未认证
404项目不存在、无权访问或 Collection 不存在
500更新 Collection 失败

5. 删除 Collection

DELETE /projects/:projectId/collections/:collectionId

删除 Collection 及其关联的数据行(软删除)。

Path 参数

参数类型必填说明
projectIdstring项目 ID
collectionIdstringCollection ID(key)

响应 200

json
{
  "success": true,
  "deletedRows": 15
}

错误码

状态码说明
401未认证
404项目不存在、无权访问或 Collection 不存在
500删除 Collection 失败

6. 获取 Schema

GET /projects/:projectId/collections/:collectionId/schema

获取指定 Collection 的 Schema 定义。

Path 参数

参数类型必填说明
projectIdstring项目 ID
collectionIdstringCollection ID(key)

响应 200

json
{
  "schema": {
    "fields": [
      {
        "name": "title",
        "type": "text",
        "label": "标题",
        "required": true
      },
      {
        "name": "status",
        "type": "select",
        "label": "状态",
        "options": ["draft", "published"]
      }
    ]
  }
}

错误码

状态码说明
400Collection 类型不是 table
401未认证
404项目不存在、无权访问或 Collection 不存在
500获取 Schema 失败

7. 替换 Schema

PUT /projects/:projectId/collections/:collectionId/schema

完整替换 Collection 的 Schema 定义。支持传入迁移描述。

Path 参数

参数类型必填说明
projectIdstring项目 ID
collectionIdstringCollection ID(key)

Body 参数(JSON)

参数类型必填说明
schemaobject新的 Schema,格式 { fields: [...] }
migrationsSchemaMigration[]Schema 迁移描述列表

响应 200

返回更新后的 Schema 信息。

错误码

状态码说明
400schema.fields 缺失或 Collection 类型不是 table
401未认证
404项目不存在、无权访问或 Collection 不存在
500更新 Schema 失败

8. 添加字段

POST /projects/:projectId/collections/:collectionId/fields

向 Schema 中添加一个新字段。

Path 参数

参数类型必填说明
projectIdstring项目 ID
collectionIdstringCollection ID(key)

Body 参数(JSON)

参数类型必填说明
fieldobject字段定义,必须包含 name(字段名)和 type(字段类型)

响应 200

返回更新后的 Schema。

错误码

状态码说明
400field.namefield.type 缺失
401未认证
404项目不存在、无权访问或 Collection 不存在
409字段名已存在
500添加字段失败

9. 更新字段

PATCH /projects/:projectId/collections/:collectionId/fields/:fieldName

更新字段属性(不允许修改字段名 name)。

Path 参数

参数类型必填说明
projectIdstring项目 ID
collectionIdstringCollection ID(key)
fieldNamestring字段名称

Body 参数(JSON)

参数类型必填说明
updatesobject需要更新的属性键值对(不含 name

响应 200

返回更新后的 Schema。

错误码

状态码说明
400updates 缺失
401未认证
404项目不存在、无权访问、Collection 不存在或字段不存在
500更新字段失败

10. 删除字段

DELETE /projects/:projectId/collections/:collectionId/fields/:fieldName

从 Schema 中删除指定字段。

Path 参数

参数类型必填说明
projectIdstring项目 ID
collectionIdstringCollection ID(key)
fieldNamestring字段名称

响应 200

返回更新后的 Schema。

错误码

状态码说明
401未认证
404项目不存在、无权访问、Collection 不存在或字段不存在
500删除字段失败

源码

  • 路由apps/backend/src/routes/collections.ts
  • 服务apps/backend/src/services/collections.ts
  • 类型apps/backend/src/types/database.ts

AI Workflow Editor