當前位置: 妍妍網 > 碼農

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;

    控制台執行結果

    後執行操作

    控制台打印