alessiodh/postmanexporter

基于 GuzzleHttp 调用创建自动化的 Postman 收集

dev-master 2020-11-15 12:55 UTC

This package is auto-updated.

Last update: 2024-09-15 22:50:05 UTC


README

一个用于将 GuzzleHttp 调用转换为代码中的 Postman 收集的包。

安装

这可以通过 composer 完成

composer require alessiodh/postmanexporter

使用

创建新的 Postman 收集

use Alessiodh\PostmanExporter\PostmanExporter;

$exporter = new PostmanExporter('My collection name');

添加用于添加到调用收集的监听器

PostmanExporter 提供了 2 个中间件处理器。请求中间件是必需的,这将自动将请求记录到调用收集。响应中间件是可选的,并将响应添加到请求中。

$middleware = new PostmanExporterMiddleware();
$stack = new HandlerStack();
$stack->setHandler(new CurlHandler());
$stack->push($middleware->documentRequest($exporter));
$stack->push($middleware->documentResponse($exporter));

$client = new Client(['handler' => $stack]);

当添加了处理器后,每个使用该特定客户端执行的请求都将被记录。

为调用添加名称和描述

exporter_name 是 Postman 中调用的名称,这是必需提供的参数,否则调用将不会被注册。exporter_description 是一个可选参数,将为调用提供描述。

$resp = $client->get('https://google.com?foo=bar&t=b',
    [
        'exporter_name' => 'Get test',
        'exporter_description' => 'Will perform a get request to google with 2 get parameters'
    ]
);

导出结果

要导出收集,您可以将其导出为可以直接导入 Postman 的 JSON 文档,或获取作为字符串返回的 JSON。

导出为 JSON 文档

此函数将文件写入到 Storage::disk('public'),文件名为 postman.json。它不会检查文件是否存在,而是直接覆盖它。

$exporter->exportToPostman();

获取返回的 JSON

$exporter->getJsonOfCalls();

注意

这仍然是导出调用到 Postman 的简单实现。欢迎所有贡献。