如何通过REST调用获取Camunda已部署Workflow WAR版本?
可以通过Camunda REST API获取已部署工作流WAR包的版本信息
当然可以!作为拥有Camunda管理员权限的你,完全不需要操作系统权限,就能通过官方提供的REST API获取到已部署WAR包的版本相关信息。下面给你两种实用的方法:
1. 获取部署元数据里的版本(适用于部署时指定过版本的情况)
如果你在部署WAR包的时候,显式指定了version参数,或者你的部署流程自动关联了版本标识,直接调用部署查询接口就能拿到:
- 请求方式:GET
- 接口路径:
/engine-rest/deployment - 可以加
name参数过滤,精准定位到你的WAR包对应的部署(比如你的WAR包部署名称是my-workflow-app,就加?name=my-workflow-app)
举个curl调用的例子:
curl -X GET "http://你的Camunda地址:端口/engine-rest/deployment?name=my-workflow-app" -H "Accept: application/json"
返回的JSON里,每个部署条目会包含id、name、deploymentTime,如果部署时设置了version,这个字段也会直接返回给你。
2. 从WAR包的MANIFEST.MF里提取版本(通用方案)
如果你的WAR包在META-INF/MANIFEST.MF里配置了版本信息(比如Implementation-Version: 1.3.0),Camunda的REST API不会直接返回这个,但你可以分两步间接获取:
- 先调用资源列表接口,找到WAR包里的
META-INF/MANIFEST.MF:curl -X GET "http://你的Camunda地址:端口/engine-rest/deployment/{部署ID}/resources" -H "Accept: application/json" - 拿到资源列表后,调用资源内容接口获取MANIFEST.MF的文本内容:
curl -X GET "http://你的Camunda地址:端口/engine-rest/deployment/{部署ID}/resource/META-INF%2FMANIFEST.MF/data" -H "Accept: text/plain"
之后你就能从返回的文本里提取出对应的版本信息了。
小提醒
- 管理员权限默认就能访问这些REST端点,不用额外配置权限
- 如果部署WAR包时没手动设置版本,Camunda不会自动生成版本字段,这时候就只能靠MANIFEST.MF里的信息啦
内容的提问来源于stack exchange,提问作者hippocrene
相关产品推荐
相关产品推荐

