Flowable引擎中的REST API详解
概述
Flowable引擎提供了完整的REST API接口,允许开发者通过HTTP协议与流程引擎进行交互。本文将详细介绍Flowable REST API的设计原则、配置方法以及使用规范。
REST API基础配置
安装与认证
Flowable REST API可以通过部署flowable-rest.war文件到Servlet容器(如Tomcat)来安装。同时,也可以将其集成到现有Web应用中。
认证机制采用HTTP基本认证,默认要求用户具有"rest-access-api"权限。如需放宽限制,可设置flowable.rest.app.authentication-mode
为any-user
。
默认用户配置
可通过以下属性配置默认REST API用户:
flowable.rest.app.admin.user-id=rest-admin
flowable.rest.app.admin.password=test
flowable.rest.app.admin.first-name=Rest
flowable.rest.app.admin.last-name=Admin
安全提示:初始配置完成后,务必修改默认密码。
高级配置
核心配置文件位于:
WEB-INF/META-INF/flowable-app/flowable-app.properties
:基础属性配置WEB-INF/classes/flowable-custom-context.xml
:Spring Bean覆盖配置
使用规范
HTTP方法与响应码
| 方法 | 用途 | 成功响应码 | |---------|----------------------------------|------------| | GET | 获取单个或集合资源 | 200 | | POST | 创建新资源或执行复杂查询 | 201 | | PUT | 更新资源属性或执行操作 | 200 | | DELETE | 删除资源 | 204 |
常见错误响应码:
- 401:认证失败
- 403:操作禁止
- 404:资源不存在
- 405:方法不支持
- 409:资源冲突
- 415:不支持的媒体类型
- 500:服务器内部错误
请求头设置
建议始终设置以下请求头:
Accept: application/json
Content-Type: application/json
(POST/PUT请求时)
参数处理
URL参数类型
| 类型 | 格式说明 | |----------|--------------------------------------------------------------------------| | String | 普通文本,需URL编码。Like查询使用%作为通配符(如'Tas%'匹配'Tas'开头的值)| | Integer | 整数值(-2,147,483,648到2,147,483,647) | | Long | 长整型值(-9,223,372,036,854,775,808到9,223,372,036,854,775,807) | | Boolean | 仅接受true或false | | Date | ISO-8601格式(如2013-04-03T23:45Z) |
分页与排序
分页参数:
sort
:排序字段(默认值因查询而异)order
:排序方向(asc或desc,默认asc)start
:起始位置(默认0)size
:每页大小(默认10)
示例分页请求:
GET /runtime/tasks?start=0&size=3
GET /runtime/tasks?start=3&size=3
GET /runtime/tasks?start=6&size=3
变量处理
变量查询格式
{
"name": "variableName",
"value": "variableValue",
"operation": "equals",
"type": "string"
}
支持的操作符: equals, notEquals, equalsIgnoreCase, notEqualsIgnoreCase, lessThan, greaterThan, lessThanOrEquals, greaterThanOrEquals, like
变量表示格式
{
"name": "variableName",
"value": "variableValue",
"valueUrl": "http://...",
"type": "string"
}
支持的类型:
- string:字符串
- short/integer/long:整型
- double:双精度浮点
- boolean:布尔值
- date:日期(ISO-8601格式)
最佳实践
- 安全通信:始终使用HTTPS协议传输敏感数据
- 类型明确:在变量操作中显式指定类型,避免自动推断可能导致的错误
- 错误处理:检查响应状态码并处理错误响应体
- 性能优化:合理使用分页查询,避免返回过大数据集
- 编码规范:对URL中的特殊字符进行正确编码
通过遵循这些规范,开发者可以充分利用Flowable REST API构建高效、可靠的工作流应用集成方案。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考