API 参考 / work-items

执行工作项状态转移

POST /api/v1/work-items/{workItemId}/transition · executeWorkItemTransition

执行一次工作流转移:校验守卫(permission_guard)→ CAS 写状态 + 激活槽/待办人 → 产 work_item.updated 事件(与路由变更时的 work_item.routed)→ 写转移日志。 CAS 并发冲突返回 409(前端刷新后重试);守卫拒绝返回 403;拓扑非法、requireReason 边缺原因、 或对终态重复流转返回 422。内置 canceled 边要求非空原因;缺陷进入 canceled 会清空旧 resolution。 鉴权模块按目标条目自身的 type 判定:缺陷(type=bug)走 bugs 模块、其余走 subtasks, 均要求 >= edit(缺陷即 type=bug 的工作项,没有独立端点)。

鉴权:项目 API Token(Authorization: Bearer wfp_…)。详见 Agent 接入。

参数

workItemId(必填)
string

请求体

toStateKey(必填)
string
reason
string

响应字段 · 200

id(必填)
string
displayKey(必填)
string
requirementId(必填)
string
roomId(必填)
string
severity
enum;取值:blocker / major / minor
resolution
enum;取值:fixed / wontfix / cannot_reproduce / duplicate
parentId
string
title(必填)
string
description
string
type(必填)
enum;取值:task / dev / qa / bug
availableTransitions
WorkItemTransition[]
availableTransitions[].toStateKey(必填)
string
availableTransitions[].name(必填)
string
availableTransitions[].allowed(必填)
boolean
availableTransitions[].blockedReason
string
availableTransitions[].guardCode
enum;取值:permission / missing_field / separation_of_duties / slot_empty / not_slot_member / not_visited / unknown
availableTransitions[].requireReason
boolean
availableTransitions[].href(必填)
string
availableTransitions[].method(必填)
string
status(必填)
string
priority(必填)
enum;取值:P0 / P1 / P2 / P3
ownerId(必填)
string
creatorId(必填)
string
role(必填)
string
startOn(必填)
string
dueOn(必填)
string
estimateDays(必填)
integer
progress(必填)
integer
sortOrder(必填)
integer
customFields
object
workflowVersionId(必填)
string
activeSlotKey(必填)
string
activeUserId(必填)
string
lastActorId
string
stateEnteredAt(必填)
string
slots
object
createdAt(必填)
string
updatedAt(必填)
string

错误

请求示例(curl)

curl -X POST "https://你的项目.workflow.games/api/v1/work-items/{workItemId}/transition" \
  -H "Authorization: Bearer wfp_…" \
  -H "content-type: application/json" \
  --data '{"toStateKey":"示例文本","reason":"操作原因(会记入变更流)"}'

响应示例

HTTP/1.1 200
{
  "id": "018f3c2e-0000-7000-8000-000000000000",
  "displayKey": "示例文本",
  "requirementId": "018f3c2e-0000-7000-8000-000000000000",
  "roomId": "018f3c2e-0000-7000-8000-000000000000",
  "title": "示例标题",
  "type": "task",
  "status": "示例文本",
  "priority": "P0",
  "ownerId": "018f3c2e-0000-7000-8000-000000000000",
  "creatorId": "018f3c2e-0000-7000-8000-000000000000",
  "role": "示例文本",
  "startOn": "2026-08-01",
  "dueOn": "2026-08-01",
  "estimateDays": 1,
  "progress": 1,
  "sortOrder": 1,
  "workflowVersionId": "018f3c2e-0000-7000-8000-000000000000",
  "activeSlotKey": "示例文本",
  "activeUserId": "018f3c2e-0000-7000-8000-000000000000",
  "stateEnteredAt": "示例文本",
  "createdAt": "示例文本",
  "updatedAt": "2026-08-01"
}

合同真值:OpenAPI 3.1(0.1.0)。

相关:Agent 接入指南 · 使用指南 · API 参考索引

Workflow 正在加载…