多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 概述 Apipost是一款专为API研发设计的协同工具,它集成了API接口调试、文档生成、自动化测试等功能,能够覆盖API研发的整个生命周期。通过Apipost,用户可以轻松创建、调试和测试API接口,生成高质量的API文档,并与团队成员进行实时协作和沟通。无论是在线还是离线,它都能为用户提供稳定、高效的API研发体验。 > 预执行脚本是一个`请求发送前`执行的脚本。通过添加预执行操作——添加自定义脚本的方式进行添加 APIPost 支持通过脚本(JavaScript)调用其他编程语言进行操作。要实现这一点,通常需要使用外部程序或库来与其他语言通信。 > 预执行脚本可以完成以下作用: * 编写JS函数等实现复杂计算; * 变量的打印 * 定义、获取、删除、清空环境变量 * 定义、获取、删除、清空全局变量 * 获取请求参数 * 动态添加、删除一个header请求参数 * 动态添加、删除一个query请求参数 * 动态添加、删除一个body请求参数 * 发送HTTP请求 > 提示:仅版本号 >= `7.0.13` 的 Apipost 版本支持脚本调用外部程序。 ## 使用方法 脚本中使用方法`apt.execute(fileName, args)`调用外部程序。 * 参数 ```fileName:String```,外部程序文件名绝对路径。 * 参数 ```args:Array<String>```,传给外部程序的运行参数,为字符串数组类型,可以传递多个参数。 * 返回值:`String`,命令行运行程序时,在控制台输出的字符串。 ## 调用原理 调用外部程序是以命令行的方式运行程序,返回值为程序在控制台输出的字符串。 系统会自动根据外部程序的后缀名,调用对应的命令行来运行外部程序。 ### 代码示例 后执行脚本 ```js try { var fileName = "E:/test.php"; var args = { event: "Tinywan", room_id: 2, channel_id: 10086 }; // 注意:json 格式数据作为参数时,需要使用 JSON.stringify 对参数进行序列化 const phpResultString = apt.execute(fileName, [JSON.stringify(args)]); // 注意:返回数据为 json 格式字符串时,可使用 JSON.parse 反序列化 const phpResult = JSON.parse(phpResultString); console.log("PHP 运行结果 ", phpResult); } catch (e) { console.error(e.message); } ``` `demo.php` 代码 ``` <?php $param = json_decode($argv[1]); $result = []; foreach ($param as $key => $value) { $result[$key] = $value; } echo json_encode($result) . PHP_EOL; ``` ### 控制台执行结果 #### 后执行操作 ![](https://img.kancloud.cn/6d/b1/6db14654e9cd0fdf63760c2d3c141a31_826x400.png) #### 控制台打印 ![](https://img.kancloud.cn/1a/84/1a843f94cc92906962a494d0d8283ffb_809x282.png)