Apipost预执行脚本如何调用外部PHP脚本语言

2024-07-05 12:35:22 浏览数 (2)

概述

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,命令行运行程序时,在控制台输出的字符串。

调用原理

调用外部程序是以命令行的方式运行程序,返回值为程序在控制台输出的字符串。系统会自动根据外部程序的后缀名,调用对应的命令行来运行外部程序。

代码示例

后执行脚本

代码语言:javascript复制
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);
}

test.php 代码

代码语言:javascript复制
<?php
/**
 * @author Tinywan(ShaoBo Wan)
 * @date 2024/6/21 20:14
 */
declare(strict_types=1);

$param = json_decode($argv[1]);
$result = [];
foreach ($param as $key => $value) {
    $result[$key] = $value;
}
echo json_encode($result) . PHP_EOL;

控制台执行结果

后执行操作

控制台打印

0 人点赞