Простой, но установленный / полный REST-клиент для PHP? - PullRequest
14 голосов
/ 16 февраля 2012

Я ищу реализацию REST-клиента на PHP и ранее использовал модифицированную версию CakePHP Webservice Behavior , которая довольно близка к тому, что я ищу, но я не опираясь на Cake, так что это не в списке.

Я ищу REST-клиента, который позволил бы мне делать базовые REST-запросы и возвращать заголовки / тело запроса. Необязательные, но желаемые функции:

  • Базовая аутентификация HTTP
  • После перенаправления
  • Отмена и повторный запрос неудавшихся запросов

Я прочитал другие SO темы и нашел кучу бесполезных ответов, которые в основном состоят из "просто напиши сам, это не сложно «или« использовать cURL »(то есть то же, что и предыдущий) или« вот фрагмент кода, который это сделает »(конечно, не установлен или не надежен). Этот вопрос является наиболее потенциально полезным, но он содержит вышеуказанное, плюс две самообращающиеся библиотеки , опубликованные их авторами, которые являются очень простыми и в которых отсутствуют из вышеперечисленных функций и, хотя они, вероятно, сделали бы уловку, едва ли установлены или поддерживаются так, как мне бы хотелось.

Этот вопрос также связан с Guzzle , у которого есть противоположная проблема - несмотря на то, что он надежный и хорошо поддерживаемый, он кажется чрезвычайно сложным, сложным в настройке и настройке и гораздо более сложным, чем я. ищу.

Итак: кто-нибудь знает об установленном REST-клиенте для PHP, который просто выполняет REST-запросы, небольшой и сфокусированный (я думаю, один, может быть, два PHP-файла), но широко используемый и поддерживаемый? Я не ищу фреймворк или революцию в использовании HTTP - просто библиотека для выполнения основных запросов REST. Я не хочу заново изобретать колесо снова , и с тысячами (если не миллионами) PHP-проектов, использующих REST каждый день, я удивлен, что не нашел ничего подобного.

Существует множество качественных библиотек REST-серверов - почему не клиенты REST? Я в основном ищу что-то вроде Tonic , но как клиент. Вредитель (сверху) выглядит хорошо сложенным и ближайшим, но я просто удивлен, что нет чего-то более устоявшегося.

Ответы [ 3 ]

11 голосов
/ 29 марта 2012

В Guzzle есть множество расширенных функций, но я все же думаю, что вы можете легко использовать его для своих минимальных требований.

  1. Загрузите файл phar, который включает в себя всеклассы, которые вам понадобятся на их странице выпуска GitHub: https://github.com/guzzle/guzzle/releases
  2. Включите файл phar в ваше приложение (это настроит автозагрузчик для Guzzle)
  3. Создайте клиента
  4. Присоедините ExponentialBackoffPlugin к клиенту
  5. Отправьте запросы от клиента

Пример:

<?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());
6 голосов
/ 16 февраля 2012

Вы можете посмотреть Запросы или даже HTTP PECL библиотеку .Однако они касаются только процесса HTTP-запроса / ответа.Вы можете искать больше, чем это?Конструкция REST настолько сильно пересекается с протоколом HTTP, что абстракции не намного больше, чем на ней можно построить .

0 голосов
/ 16 января 2014

cURL довольно многословен, PHAR требует кучу настроек. Если вы хотите действительно простой вариант REST, попробуйте это:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...