REST API
Flowable REST 通用原则
安装与认证
Flowable 包含一个面向 Flowable 引擎的 REST API,可通过将 flowable-rest.war 文件部署到 Apache Tomcat 之类的 servlet 容器中来安装。此外,也可以在另一个 web 应用中使用它,方法是在你的应用中包含该 servlet(和/或其映射),并将所有 flowable-rest 依赖添加到 classpath。
默认情况下,Flowable 引擎会连接到内存中的 H2 数据库。你可以在 WEB-INF/META-INF/flowable-app 文件夹下的 flowable-app.properties 文件中更改数据库设置。REST API 使用 JSON 格式(http://www.json.org),并构建在 Spring MVC(http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html)之上。
默认情况下,所有 REST 资源都要求一个具有 rest-access-api 权限的有效用户通过认证。如果希望任何有效用户都能调用 REST API,可以将 flowable.rest.app.authentication-mode 设置为 any-user(在旧版本 Flowable 中这是默认值)。
可以通过设置以下属性来配置一个能够访 问 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
REST 应用启动时,如果该用户不存在则创建它,否则获取它。该用户将被授予 access-rest-api 权限,默认访问 REST API 需要此权限。之后请勿忘记更改该用户的密码。如果未设置 flowable.rest.app.admin.user-id,则不会创建任何用户或权限。因此,在初始设置完成后,移除该属性并不会移除之前已配置的用户或权限。
使用基本 HTTP 访问认证,因此在执行请求时,你应始终包含一个 Authorization: Basic …== HTTP 头,或在请求 URL 中包含用户名和密码(例如 *http://username:password@localhost:8080/xyz*)。
我们建议你将基本认证与 HTTPS 结合使用。
配置
Flowable REST web 应用使用 Spring Java Configuration 来启动 Flowable Form 引擎,使用 Spring security 定义基本认证安全性,并定义用于特定变量处理的变量转换器。通过修改 flowable-app.properties 文件可以定义少量属性,该文件位于 WEB-INF/META-INF/flowable-app/flowable-app.properties 文件夹。如果需要更高级的配置选项,可以在 WEB-INF/classes 文件夹下的 flowable-custom-context.xml 文件中覆盖默认的 Spring bean(XML 方式)。该文件中已以注释形式给出了一个示例配置。这里也是覆盖默认 RestResponseFactory 的地方,方法是定义一个名为 restResponsefactory 的新 Spring bean,并为其使用你自定义的实现类。