此包的最新版本(2.0.1)没有可用的许可证信息。

PHP REST 调度,用于与 RESTful 服务交互

2.0.1 2015-05-13 15:42 UTC

This package is not auto-updated.

Last update: 2024-09-14 13:55:52 UTC


README

PHP REST 调度

A REST 客户端,用于访问支持 RESTful 访问或任何 HTTP 访问方法的服务。支持所有 HTTP 方法,包括:GET、POST、DELETE、PUT、OPTIONS、HEAD、AUTH 和自定义。通过队列激活设置支持同时请求。使用队列可以将多个请求并行处理,这可以显著加快对多个服务或 API 终端的调用。

示例

$request = new Shutterstock\Presto\Presto();
$r = $request->get('http://www.google.com');

功能

  1. 内置对所有常见 REST 调用类型的支持
  2. 支持添加 AUTH 标头
  3. 支持队列和并行请求
  4. 支持传递用于处理响应的回调函数
  5. 内置日志记录和性能分析
  6. 支持每个请求基于自定义超时和重试
  7. 支持设置用户代理和引用

更多详情

Presto 依赖于 curl 来发送所有请求。提供了许多自定义选项,包括自定义头添加、引用和用户代理。内置了性能分析,并将所有 curl 元数据和计时信息记录下来,以协助故障排除和优化。失败的请求以错误的形式记录,可选择抛出异常。允许配置慢请求配置选项,将慢请求记录到错误日志中。失败请求可以在指定延迟后自动重试一定次数。

所有请求结果都存储在标准化的 Response 对象中,该对象包含元数据、头部和请求响应数据块。始终存在一个 is_success 元数据条目,用于指示网络请求是否成功。在失败的情况下,元数据部分将包含错误信息。

测试和覆盖率

Presto 有单元测试和集成测试。要查看覆盖率...

phpunit -c /tests/unit
phpunit -c /tests/integration

队列示例

Shutterstock\Presto\Presto::initQueue();

// callback function to process response
$rest_response = function($r) {
    if ($r->is_success) {
        echo "{$r->http_code} - {$r->url} " . round($r->total_time, 2) . "s\n";
    } else {
        echo "0 - {$r->url} {$r->error}\n";
    }
};

// URLs to hit, include one that will fail and another that will return a 404
$urls = [
    'http://www.google.com',
    'http://www.yahoo.com',
    'http://www.hfjkhfwekjhfkj.info',
    'http://www.bigstockphoto.com/qwerty',
];

// Create an array to hold Presto request objects
$requests = array();

foreach ($urls as $url) {
    $requests[$url] = new Shutterstock\Presto\Presto();
    $requests[$url]->queue_enabled = true;
    $requests[$url]->get($url, null, $rest_response);
}

// Process all queued requests
Shutterstock\Presto\Presto::processQueue();