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


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

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

  • Базовая аутентификация HTTP
  • Следующее перенаправляет
  • Отступление и повторный запрос неудачных запросов

Я прочитал другое ТАК ЧТО темы и нашли кучу бесполезных ответов, которые в основном состоят из "просто напишите это сами, это не сложно" или "используйте CURL" (т.Е. Такой же, как предыдущий) или "вот фрагмент кода, который это сделает" (конечно, не установленный или надежный). Этот вопрос является наиболее потенциально полезным, но в нем есть все вышеперечисленное, плюс два самокатаный библиотеки, опубликованные их авторами, которые являются очень простыми и в которых отсутствуют некоторые из вышеперечисленных функций, и, хотя они, вероятно, сделают свое дело, вряд ли так созданы или поддерживаются, как хотелось бы.

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

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

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

Author: Community, 2012-02-16

3 answers

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

  1. Загрузите файл phar, содержащий все классы, которые вам понадобятся, со страницы выпуска на GitHub: https://github.com/guzzle/guzzle/releases
  2. Включите файл phar в свое приложение (это настроит автозагрузчик для Guzzle)
  3. Создать клиента
  4. Прикрепите экспоненциальный плагин Backoff к клиент
  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());
 11
Author: Michael Dowling, 2014-08-18 01:47:57

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

 6
Author: Francis Avila, 2012-02-16 03:06:05

CURL довольно многословен, для PHAR требуется множество настроек. Если вам нужен действительно простой вариант ОТДЫХА, попробуйте следующее:

Напечатать файл_гет_контенты('http://php.net/');

 -2
Author: DaveC, 2014-01-16 18:29:28