Skip to content

REST API

引擎能力经 REST 暴露,基础路径 /api/v1。gflow 的全部界面都跑在这套 API 上——没有私有接口,二开时你的系统与 gflow 地位平等。

认证

JWT Bearer Token(Authorization: Bearer <token>),登录接口换取。所有请求携带租户上下文。例外:站内通知 WebSocket GET /api/v1/ws/notifications(浏览器 WS 无法携带 Authorization 头,改用 query 参数传 token 自鉴权)。

审批动作类接口(签收 / 通过 / 驳回 / 转办 / 委派 / 加减签等)要求 approval:operate 权限;发起实例要求 workflow:instance:startapproval:create(任一即可);管理类接口各有独立权限码。

流程定义 /api/v1/workflow/process-definitions

方法路径说明
GET/分页查询定义列表
GET/categories可发起的审批流程按分类分组(发起页数据源)
GET/key/{processKey}按 key 查当前生效版本
GET/key/{processKey}/versions按 key 查全部版本
GET/{id}按 ID 查定义
GET/{id}/versions按 ID 查全部版本
POST/deploy部署 DSL(新版本 version+1,旧 active 版本自动退役)
POST/import导入 DSL JSON 文件(同名 key 自动升版本)
POST/创建草稿
PUT/{id}更新草稿
DELETE/{id}删除
POST/{id}/activate启用
POST/{id}/retire停用

流程实例 /api/v1/workflow/process-instances

方法路径说明
GET/分页查询(运行表与归档表自动合并返回)
GET/{id}实例详情
POST/start发起实例(processKey + businessKey + variables)
POST/{id}/suspend · /{id}/activate挂起 / 恢复
POST/{id}/force-resume强制恢复(管理员兜底:并行分支卡死救援)
GET/stuck卡死实例对账(active 但无未决任务)
POST/{id}/re-drive重驱动卡死实例(从当前节点补跑引擎推进)
POST/{id}/terminate终止
POST/{id}/complete完成
POST/{id}/withdraw发起人撤回(实例终止,end_reason 记「申请人撤回」)
DELETE/{id} · /batch删除 / 批量删除
GET/{id}/variables流程变量列表
GET/{id}/variables/{variableName}查单个流程变量
POST/{id}/variables批量设置流程变量
PUT/{id}/variables/{variableName}更新单个流程变量
DELETE/{id}/variables/{variableName}删除单个流程变量
GET/todo /done /cc /applications我的待办 / 已办 / 抄送 / 我发起的
GET/{id}/detail审批详情(轨迹 + 表单 + 权限)

任务 /api/v1/workflow/tasks

方法路径说明
GET/任务查询(assignee / status / 到期等条件)
GET/{id}任务详情
GET/statistics审批统计(待办徽章等)
GET/overdue · /backlog超时任务 / 按流程积压看板(管理员监控)
GET/history · /history/{id}历史任务(归档表)
POST/urge/{id}催办(通知任务办理人尽快处理)
POST/{id}/claim · /{id}/unclaim签收 / 取消签收(抢单)
POST/{id}/approve通过(带意见)
POST/{id}/reject拒绝
POST/{id}/return退回(仅支持退回上一个已办审批节点)
POST/{id}/transfer转办
POST/{id}/delegate委托
POST/{id}/resolve归还委派(被委派人处理后归还原审批人)
POST/{id}/add-sign · /{id}/reduce-sign加签 / 减签
POST/{id}/withdraw撤回(申请人撤回已提交的申请,按任务定位实例并终止)
POST/{id}/suspend · /{id}/activate任务挂起 / 恢复
POST/{id}/complete完成(非审批类任务)
POST/{id}/reassign任务重分配(管理员)
DELETE/{id}删除任务
GET/POST/{id}/candidates候选人列表 / 添加候选人(管理员)
POST/{id}/candidates/remove移除候选人
GET/{id}/variables任务变量列表
POST/{id}/variables批量设置任务变量
PUT/DELETE/{id}/variables/{variableName}更新 / 删除单个任务变量
GET/POST/{id}/comments任务评论列表 / 新增评论

示例:发起一个请假

bash
curl -X POST http://localhost:8080/api/v1/workflow/process-instances/start \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "processKey": "leave_approval",
    "businessKey": "leave-2026-0819-001",
    "variables": { "days": 5, "reason": "家中事务", "managerId": "u_zhangwei" }
  }'

示例:审批人处理待办

bash
# 查我的待办
curl -H "Authorization: Bearer $TOKEN2" \
  "http://localhost:8080/api/v1/workflow/tasks?assignee=u_zhangwei&status=pending,active"

# 通过
curl -X POST http://localhost:8080/api/v1/workflow/tasks/{taskId}/approve \
  -H "Authorization: Bearer $TOKEN2" \
  -d '{ "comment": "同意,注意工作交接" }'

Go API

嵌入场景直接用引擎服务,不走 HTTP:ProcessService(定义/部署)、RuntimeService(实例/恢复)、TaskService(任务/审批动作)。用法见引擎三分钟入门

最后更新于:

rulego-bpm 基于 Apache-2.0 许可开源 · gflow 商业授权