当前位置: 欣欣网 > 码农

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

2024-06-22码农

概述

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

  • 调用原理

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

    代码示例

    后执行脚本

    try {
    var fileName = "E:/test.php";
    var args = {
    event"Tinywan",
    room_id2,
    channel_id10086
    };
    // 注意: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
    /**
     * @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;

    控制台执行结果

    后执行操作

    控制台打印