Простой, но установленный/полный клиент REST для PHP?

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

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

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

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

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

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

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

Ответы

Ответ 1

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

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

Пример:

<?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());

Ответ 2

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

Ответ 3

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

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