PHP的简单但已建立/完整的REST客户端?

时间:2012-02-16 02:33:18

标签: php http rest

我正在寻找在PHP中实现REST客户端,并且以前一直在使用CakePHP Webservice Behavior的修改版本,这与我正在寻找的非常接近,但我不是在构建Cake ,所以这不在列表中。

我正在寻找一个REST客户端,它允许我发出基本的REST请求并返回请求的标题/正文。可选但需要的功能:

  • HTTP基本身份验证
  • 重定向后
  • 备份并重新请求失败的请求

我通过other SO threads阅读并找到了一堆无用的答案,主要包括“只是自己写,不难”或“使用cURL” (即与前一个相同)或“这里是一个代码片段,它将做到这一点”(当然没有建立或强大)。 This question是最有帮助的,但它有上述内容,加上其作者发布的两个self-rolled libraries非常基本,并且缺少上述某些功能,而他们' d可能做的伎俩,很难像我想的那样建立或维持。

这个问题也链接到Guzzle,它有相反的问题 - 虽然健壮且得到良好支持,但它看起来非常复杂,难以配置和设置,而且比我正在寻找的方式更多

所以:有没有人知道PHP的既定REST客户端只做REST请求,小而且专注(我想的是一个,也许是两个PHP文件),但是被广泛使用和支持?我不是在寻找HTTP使用的框架或革命 - 只是一个库来执行基本的REST请求。我不想再重新发明轮子,而且每天都有成千上万(如果不是数百万)的PHP项目使用REST,我很惊讶我没有找到这样的东西。

有许多高质量的REST服务器库可用 - 为什么不使用REST客户端?我基本上都在寻找类似Tonic的东西,但作为客户。 Pest(来自上方)看起来精心打造,并且距离最近,但我感到惊讶的是没有更成熟的东西。

3 个答案:

答案 0 :(得分:11)

Guzzle中有很多高级功能,但我仍然认为您可以轻松地将其用于最低要求。

  1. 从GitHub发布页面下载包含您需要的所有课程的phar文件:https://github.com/guzzle/guzzle/releases
  2. 在您的应用程序中包含phar文件(这将为Guzzle配置自动加载器)
  3. 创建客户
  4. 将ExponentialBackoffPlugin附加到客户端
  5. 从客户端发送请求
  6. 示例:

    <?php
    
    // Include the phar and register the autoloader
    require 'guzzle.phar';
    
    // Create a client for http://test.com (binding to a host is optional)
    $client = new Guzzle\Http\Client('http://test.com');
    
    // Attach the exponential backoff plugin to the client so that requests 
    // are retried automatically
    $client->addSubscriber(Guzzle\Plugin\Backoff\BackoffPlugin::getExponentialBackoff());
    
    // Create and send a GET request to grab the response
    $response = $client->get('/foo.json')->send();
    
    // Dump the JSON response data as an array
    var_dump($response->json());
    

答案 1 :(得分:6)

您可以查看Requests甚至HTTP PECL library。但是,这些仅涉及HTTP请求/响应过程。您可能正在寻找更多? REST设计与HTTP协议非常相似,因此没有更多的抽象可以 构建在它之上。

答案 2 :(得分:-2)

cURL相当冗长,PHAR需要一堆设置。如果你想要一个非常简单的REST选项,试试这个:

print file_get_contents('http://php.net/');