Skip to content

待办分组 API

待办分组是团队工作区内用于组织待办事项的容器。所有端点需要身份验证和团队成员身份。权限按操作逐一检查。


GET /api/teams/:teamId/sets

列出团队的所有分组,按 sortOrder 升序排列。若不存在任何分组,会在返回前自动创建一个默认分组。

需要身份验证: 是 — 团队成员

响应:

json
{
  "sets": [
    {
      "id": "uuid",
      "userId": "creator-uuid",
      "name": "Sprint 12",
      "sortOrder": 1,
      "splitCompleted": false,
      "createdAt": "2026-03-17T12:00:00.000Z"
    },
    {
      "id": "uuid-2",
      "userId": "creator-uuid",
      "name": "待办事项池",
      "sortOrder": 2,
      "splitCompleted": true,
      "createdAt": "2026-03-18T09:00:00.000Z"
    }
  ],
  "role": "owner"
}
字段类型说明
sets[].idstring(UUID)分组唯一标识符。
sets[].userIdstring(UUID)创建该分组的用户 ID。
sets[].namestring显示名称。
sets[].sortOrdernumber整数排序位置(数值越小,在列表中越靠上)。
sets[].splitCompletedbooleantrue 时,已完成的待办事项显示在单独的折叠区域中。
sets[].createdAtstring(ISO 8601)创建时间戳。
rolestring当前用户的角色:"owner""co_owner""admin""member"

错误响应:

状态码error原因
401"Unauthorized"未登录。
403"Forbidden"不是该团队的成员。

POST /api/teams/:teamId/sets

创建新分组。新分组附加在列表末尾(最高 sortOrder + 1)。

需要身份验证: 是 — manage_sets 权限

请求体:

json
{ "name": "Sprint 12" }
字段类型必填说明
namestring新分组的显示名称。不能为空。

响应(201):

json
{
  "set": {
    "id": "uuid",
    "userId": "creator-uuid",
    "name": "Sprint 12",
    "sortOrder": 3,
    "splitCompleted": false,
    "createdAt": "2026-03-17T12:00:00.000Z"
  }
}

错误响应:

状态码error原因
400"Name is required"name 缺失或为空。
403"Forbidden"缺少 manage_sets 权限。

PATCH /api/teams/:teamId/sets/:setId

更新分组的名称或选项。仅更新提供的字段。

需要身份验证: 是 — manage_sets 权限,或当前用户为该分组的创建者

路径参数:

参数说明
setId要更新的分组的 UUID。

请求体(所有字段均为可选):

json
{
  "name": "Sprint 13",
  "splitCompleted": true
}
字段类型说明
namestring新的显示名称。若提供,不能为空。
splitCompletedboolean启用 / 禁用该分组的分离已完成待办布局。

响应:

json
{ "ok": true }

错误响应:

状态码error原因
400"Name cannot be empty"提供了 name 但为空字符串。
403"Forbidden"缺少 manage_sets 权限且不是该分组的创建者。
404"Set not found"该团队中不存在此 ID 的分组。

DELETE /api/teams/:teamId/sets/:setId

删除分组及其所有待办事项、子待办和评论(级联删除)。

需要身份验证: 是 — manage_sets 权限,或当前用户为该分组的创建者

WARNING

此操作是永久性的。分组内的所有待办事项、子待办和评论会立即删除。没有回收站或撤销功能。

响应:

json
{ "ok": true }

错误响应:

状态码error原因
403"Forbidden"缺少 manage_sets 权限且不是该分组的创建者。
404"Set not found"该团队中不存在此 ID 的分组。

POST /api/teams/:teamId/sets/reorder

在一次请求中批量更新多个分组的 sortOrder。调用方需提供连续的整数(例如 1、2、3)。

需要身份验证: 是 — manage_sets 权限

请求体:

json
{
  "items": [
    { "id": "uuid-1", "sortOrder": 1 },
    { "id": "uuid-2", "sortOrder": 2 },
    { "id": "uuid-3", "sortOrder": 3 }
  ]
}
字段类型说明
itemsarray{id, sortOrder} 对象列表。所有需要新位置的分组都应包含在内。
items[].idstring(UUID)要更新的分组 ID。
items[].sortOrdernumber新的排序位置(整数)。

响应:

json
{ "ok": true }

错误响应:

状态码error原因
400"Items required"items 缺失或为空数组。
403"Forbidden"缺少 manage_sets 权限。