Files
1818web-hoduan/docs/workflow-update-api.md
2025-11-14 17:41:15 +08:00

5.6 KiB
Raw Permalink Blame History

工作流更新接口文档

接口概述

工作流更新接口支持完整的工作流信息更新,包括基本信息、数据包和演示视频的更新。

接口信息

  • 请求方法: PUT
  • 请求路径: /user/content/workflows/{id}
  • 接口描述: 更新工作流信息,包括元数据、数据包和演示视频

请求参数

路径参数

参数名 类型 必填 说明
id Long 工作流数据库ID

请求体 (WorkflowUpdateRequest)

{
  "name": "工作流名称",
  "description": "工作流描述",
  "coverUrl": "封面图URL",
  "category": "工作流分类",
  "isPublic": 1,
  "fullAccessRole": 0,
  "copyAccessRole": 0,
  "price": 29.99,
  "isFree": 0,
  "data": "{\"nodes\": [], \"edges\": []}",
  "dataFileUrl": "https://oss.example.com/workflow-package.zip",
  "vodVideoId": "vod-abc123",
  "videoId": "vod-abc123"
}

请求体参数说明

基本信息

参数名 类型 必填 说明
name String 工作流名称
description String 工作流描述
coverUrl String 封面图片URL
category String 工作流分类

权限与定价

参数名 类型 必填 说明
isPublic Integer 是否公开 (0:不公开, 1:公开)
fullAccessRole Integer 查看完整数据所需最低角色 (0-3)
copyAccessRole Integer 复制所需最低角色 (0-3)
price BigDecimal 价格
isFree Integer 是否免费 (0:收费, 1:免费)

数据包相关 (新增)

参数名 类型 必填 说明
data String 工作流核心逻辑JSON字符串
dataFileUrl String 工作流依赖文件地址数据包URL例如OSS地址

演示视频相关 (新增)

参数名 类型 必填 说明
vodVideoId String 关联预览视频ID阿里云VOD视频ID
videoId String 关联预览视频ID兼容前端字段名与vodVideoId同步

角色权限说明

角色值 角色名称 说明
0 游客 未登录用户
1 普通用户 已注册登录用户
2 VIP用户 付费会员用户
3 管理员 系统管理员

响应结果

成功响应

{
  "code": 200,
  "message": "更新成功",
  "data": null
}

失败响应

{
  "code": 400,
  "message": "更新失败",
  "data": null
}

使用示例

基本信息更新

curl -X 'PUT' \
  'http://localhost:8081/user/content/workflows/1' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "新的工作流名称",
  "description": "更新的工作流描述",
  "coverUrl": "https://example.com/new-cover.jpg",
  "category": "数据分析",
  "isPublic": 1,
  "fullAccessRole": 1,
  "copyAccessRole": 2,
  "price": 49.99,
  "isFree": 0
}'

数据包更新

curl -X 'PUT' \
  'http://localhost:8081/user/content/workflows/1' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "data": "{\"nodes\": [{\"id\": \"1\", \"type\": \"input\"}], \"edges\": []}",
  "dataFileUrl": "https://oss.example.com/workflows/updated-package.zip"
}'

演示视频更新

curl -X 'PUT' \
  'http://localhost:8081/user/content/workflows/1' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "vodVideoId": "vod-new123",
  "videoId": "vod-new123"
}'

完整更新

curl -X 'PUT' \
  'http://localhost:8081/user/content/workflows/1' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "完整更新的工作流",
  "description": "这是一个完整更新的示例",
  "coverUrl": "https://example.com/complete-cover.jpg",
  "category": "机器学习",
  "isPublic": 1,
  "fullAccessRole": 1,
  "copyAccessRole": 2,
  "price": 99.99,
  "isFree": 0,
  "data": "{\"nodes\": [{\"id\": \"1\", \"type\": \"input\"}, {\"id\": \"2\", \"type\": \"process\"}], \"edges\": [{\"source\": \"1\", \"target\": \"2\"}]}",
  "dataFileUrl": "https://oss.example.com/workflows/complete-package.zip",
  "vodVideoId": "vod-complete123",
  "videoId": "vod-complete123"
}'

注意事项

  1. 权限验证: 只有工作流的所有者可以更新工作流信息
  2. 部分更新: 所有字段都是可选的,只更新提供的字段
  3. 数据包更新:
    • data 字段存储工作流的核心逻辑通常是JSON格式
    • dataFileUrl 存储工作流依赖文件的URL地址
    • 两个字段可以独立更新
  4. 演示视频更新:
    • vodVideoIdvideoId 字段保持同步
    • 支持阿里云VOD视频服务
  5. ⚠️ 审核状态重置:
    • 更新后工作流将自动重置为待审核状态 (auditStatus = 0)
    • 这与课程更新逻辑保持一致,确保内容变更需要重新审核
    • 用户需要等待管理员审核通过后才能正常展示
  6. 权限角色: fullAccessRole 和 copyAccessRole 决定了不同用户的访问权限

扩展功能说明

相比之前的版本,此接口新增了以下功能:

🆕 数据包管理

  • 支持更新工作流核心逻辑JSON (data)
  • 支持更新工作流依赖文件URL (dataFileUrl)
  • 适用于工作流数据包的版本更新

🆕 演示视频管理

  • 支持更新预览视频ID (vodVideoId)
  • 兼容前端字段名 (videoId)
  • 支持阿里云VOD视频服务

这些扩展功能解决了之前接口无法更新工作流核心内容和演示视频的问题,使得工作流更新功能更加完整。