API 参考 / schedule
GET /api/v1/schedule/snapshot · getScheduleSnapshot
返回 Gantt 所需的项目内快照。
按段裁剪(sections,B-00354):默认返回全部段落,与此前行为完全一致。 实测线上单次响应 475 KB(gzip 130 KB)/ 1.4–1.7 s,一次性下发全部工作项 + 需求 + relations + risks + ownerLoads —— 而项目概览页只需要统计量(stats / milestones / risks / ownerLoads),却和甘特一样被这堆明细阻塞。 用 sections 只要需要的段,概览可以把体积砍掉九成。
可裁剪的只有三个明细数组:requirements / workItems / relations。 stats / criticalPath / ownerLoads / risks / milestones / releaseWindows / calendar 恒返回——前四者是服务端在全量图上算出来的派生量,与是否下发明细无关, 所以裁剪不会让统计失真(这也是本端点不做「分页」的原因:关键路径与传播风险要看整张依赖图, 切成页反而算不对)。
被裁掉的段落在响应里是空数组,但 includedSections 会如实列出本次真正下发了哪些段—— 调用方据此区分「这个段没要」和「这个段真的没有数据」,不会把裁剪当成空态。
鉴权:项目 API Token(Authorization: Bearer wfp_…)。详见 Agent 接入。
sectionsincludedSections(必填)requirements(必填)requirements[].id(必填)requirements[].displayKey(必填)requirements[].title(必填)requirements[].descriptionrequirements[].roomId(必填)requirements[].status(必填)requirements[].priority(必填)requirements[].risk(必填)requirements[].ownerId(必填)requirements[].creatorId(必填)requirements[].module(必填)requirements[].category(必填)requirements[].releaseWindowId(必填)requirements[].startOn(必填)requirements[].targetOn(必填)requirements[].progress(必填)requirements[].estimateDays(必填)requirements[].stateEnteredAt(必填)requirements[].createdAt(必填)requirements[].updatedAt(必填)workItems(必填)workItems[].id(必填)workItems[].displayKey(必填)workItems[].requirementId(必填)workItems[].roomId(必填)workItems[].severityworkItems[].resolutionworkItems[].parentIdworkItems[].title(必填)workItems[].descriptionworkItems[].type(必填)workItems[].availableTransitionsworkItems[].availableTransitions[].toStateKey(必填)workItems[].availableTransitions[].name(必填)workItems[].availableTransitions[].allowed(必填)workItems[].availableTransitions[].blockedReasonworkItems[].availableTransitions[].guardCodeworkItems[].availableTransitions[].requireReasonworkItems[].availableTransitions[].href(必填)workItems[].availableTransitions[].method(必填)workItems[].status(必填)workItems[].priority(必填)workItems[].ownerId(必填)workItems[].creatorId(必填)workItems[].role(必填)workItems[].startOn(必填)workItems[].dueOn(必填)workItems[].estimateDays(必填)workItems[].progress(必填)workItems[].sortOrder(必填)workItems[].customFieldsworkItems[].workflowVersionId(必填)workItems[].activeSlotKey(必填)workItems[].activeUserId(必填)workItems[].lastActorIdworkItems[].stateEnteredAt(必填)workItems[].slotsworkItems[].createdAt(必填)workItems[].updatedAt(必填)relations(必填)relations[].id(必填)relations[].sourceWorkItemId(必填)relations[].targetWorkItemId(必填)relations[].type(必填)relations[].lagDays(必填)relations[].createdAt(必填)milestones(必填)milestones[].id(必填)milestones[].displayKey(必填)milestones[].title(必填)milestones[].descriptionmilestones[].kind(必填)milestones[].requirementIds(必填)milestones[].releaseWindowIdmilestones[].targetOn(必填)milestones[].status(必填)milestones[].createdAt(必填)milestones[].updatedAt(必填)releaseWindows(必填)releaseWindows[].id(必填)releaseWindows[].displayKey(必填)releaseWindows[].name(必填)releaseWindows[].kind(必填)releaseWindows[].startOn(必填)releaseWindows[].targetOn(必填)releaseWindows[].freezeOnreleaseWindows[].bufferDays(必填)releaseWindows[].status(必填)releaseWindows[].isCurrent(必填)calendar(必填)calendar.timezone(必填)calendar.workdays(必填)calendar.holidays(必填)stats(必填)stats.activeRequirements(必填)stats.taskCount(必填)stats.milestoneCount(必填)stats.criticalPathDays(必填)stats.highRiskCount(必填)stats.averageProgress(必填)stats.projectedEndOn(必填)criticalPath(必填)criticalPath[].workItemId(必填)criticalPath[].order(必填)ownerLoads(必填)ownerLoads[].ownerId(必填)ownerLoads[].workItemCount(必填)ownerLoads[].estimateDays(必填)risks(必填)risks[].id(必填)risks[].kind(必填)risks[].severity(必填)risks[].message(必填)risks[].entityType(必填)risks[].entityId(必填)staffingCapacitystaffingCapacity.milestoneId(必填)staffingCapacity.memberCount(必填)staffingCapacity.windowWorkdays(必填)staffingCapacity.capacityDays(必填)pileupSignalspileupSignals[].bucket(必填)pileupSignals[].count(必填)pileupSignals[].average(必填)pileupSignals[].message(必填)403:Problem 错误响应422:Problem 错误响应curl -X GET "https://你的项目.workflow.games/api/v1/schedule/snapshot?sections=…" \
-H "Authorization: Bearer wfp_…"HTTP/1.1 200
{
"includedSections": [
"示例文本"
],
"requirements": [
{
"id": "018f3c2e-0000-7000-8000-000000000000",
"displayKey": "示例文本",
"title": "示例标题",
"roomId": "018f3c2e-0000-7000-8000-000000000000",
"status": "示例文本",
"priority": "P0",
"risk": "high",
"ownerId": "018f3c2e-0000-7000-8000-000000000000",
"creatorId": "018f3c2e-0000-7000-8000-000000000000",
"module": "示例文本",
"category": "示例文本",
"releaseWindowId": "018f3c2e-0000-7000-8000-000000000000",
"startOn": "2026-08-01",
"targetOn": "2026-08-01",
"progress": 1,
"estimateDays": 1,
"stateEnteredAt": "示例文本",
"createdAt": "示例文本",
"updatedAt": "2026-08-01"
}
],
"workItems": [
{
"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"
}
],
"relations": [
{
"id": "018f3c2e-0000-7000-8000-000000000000",
"sourceWorkItemId": "018f3c2e-0000-7000-8000-000000000000",
"targetWorkItemId": "018f3c2e-0000-7000-8000-000000000000",
"type": "finish_to_start",
"lagDays": 1,
"createdAt": "示例文本"
}
],
"milestones": [
{
"id": "018f3c2e-0000-7000-8000-000000000000",
"displayKey": "示例文本",
"title": "示例标题",
"kind": "review",
"requirementIds": [
"018f3c2e-0000-7000-8000-000000000000"
],
"targetOn": "2026-08-01",
"status": "planned",
"createdAt": "示例文本",
"updatedAt": "2026-08-01"
}
],
"releaseWindows": [
{
"id": "018f3c2e-0000-7000-8000-000000000000",
"displayKey": "示例文本",
"name": "示例标题",
"kind": "version",
"startOn": "2026-08-01",
"targetOn": "2026-08-01",
"bufferDays": 1,
"status": "planned",
"isCurrent": true
}
],
"calendar": {
"timezone": "示例文本",
"workdays": [
1
],
"holidays": [
"示例文本"
]
},
"stats": {
"activeRequirements": 1,
"taskCount": 1,
"milestoneCount": 1,
"criticalPathDays": 1,
"highRiskCount": 1,
"averageProgress": 1,
"projectedEndOn": "2026-08-01"
},
"criticalPath": [
{
"workItemId": "018f3c2e-0000-7000-8000-000000000000",
"order": 1
}
],
"ownerLoads": [
{
"ownerId": "018f3c2e-0000-7000-8000-000000000000",
"workItemCount": 1,
"estimateDays": 1
}
],
"risks": [
{
"id": "018f3c2e-0000-7000-8000-000000000000",
"kind": "dependency",
"severity": "low",
"message": "示例文本",
"entityType": "requirement",
"entityId": "018f3c2e-0000-7000-8000-000000000000"
}
]
}合同真值:OpenAPI 3.1(0.1.0)。
相关:Agent 接入指南 · 使用指南 · API 参考索引