ProcessMaker 4脚本API端点:URL参数/POST传值及PHP获取方法
在ProcessMaker 4中通过API端点脚本接收GET/POST数据的方法
问题描述
我最近发现ProcessMaker 4里的脚本可以配置成通过GET或POST请求直接访问的API端点,但官方文档里没找到数据传递的相关说明。想知道能不能通过URL参数或者POST请求体给脚本传数据?如果可以的话,PHP脚本里该怎么访问这些数据?
示例请求:
https://example.elluciancloud.com/api/1.0/execution/script/123435678?username=johnny5
解决方案
完全可以通过URL参数或POST请求体给脚本传递数据,以下是PHP脚本中的具体访问方式:
1. 处理GET请求参数
ProcessMaker 4会自动将URL中的GET参数注入到$data全局数组中,你示例里的写法是有效的。同时也可以直接使用PHP原生的$_GET数组:
// 推荐:使用ProcessMaker提供的$data数组 $userName = $data['username']; // 原生方式:直接读取$_GET数组 $userName = $_GET['username'];
2. 处理POST请求数据
根据请求体的格式不同,分为两种情况:
表单格式(Content-Type: application/x-www-form-urlencoded)
这类POST数据同样会被ProcessMaker注入到$data数组中,也可以用$_POST数组读取:
$userName = $data['username']; // 或者 $userName = $_POST['username'];
JSON格式(Content-Type: application/json)
如果请求体是JSON格式,需要先读取原始输入流再解析:
// 读取原始POST内容 $rawJson = file_get_contents('php://input'); // 解析为关联数组 $postData = json_decode($rawJson, true); // 获取指定参数 $userName = $postData['username'];
注意事项
优先使用$data数组访问参数,因为它是ProcessMaker框架统一处理后的变量,兼容性更好,能避免直接操作超全局变量可能带来的上下文问题。
内容的提问来源于stack exchange,提问作者Brian Hart
相关产品推荐
相关产品推荐

