В этой статье вы прочитаете про библиотеку Unirest для языка программирования PHP, которая предназначена для реализации RestAPI, но тут он работает скорее как клиентская часть, а не серверная.
Также в если вы не знаете что такое RestAPI, то прочитаете статью «Что такое REST API», думаю вам будет интересно.
Установка Unirest:
Для начала разюерём как установить, но перед этим покажу что должно быть у вас на PHP:
- PHP 5.4+
- cURL
Если у вас это, то переходим к установке, а сделать это очень просто, через Composer, нужно только ввести одну команду.
1 | composer require mashape/unirest-php |
Таким образом вы получите последнюю версию библиотеки и установите ее. Если вам нужна основная, немаркированная версия, вы можете использовать следующую команду.
1 | composer require mashape/php-test-reporter dev-master |
После этого подключаете как обычно через require_once
файл «autoload.php», так когда скачали библиотеку через Composer.
Работа с Unirest:
Теперь перейдём к работе, но перед этим покажу вам основные особенности.
- Служебные методы для вызова запросов GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH;
- Поддерживает формы, загрузку файлов и настраиваемых объектов;
- Поддерживает gzip;
- Настраиваемый тайм-аут;
- Настраиваемые заголовки по умолчанию для каждого запроса (DRY);
- Автоматический синтаксический анализ JSON в собственный объект для ответов JSON;
Это все главные особенности библиотеки.
Теперь давайте посмотрим как отправлять простой запрос.
1 2 3 4 5 6 7 8 9 10 11 12 | // Массив настройки заголовка $headers = array('Accept' => 'application/json'); // Массив настройки запроса $query = array('foo' => 'hello', 'bar' => 'world'); // Отправляем запрос $response = Unirest\Request::post('http://mockbin.com/request', $headers, $query); $response->code; // HTTP Статус код $response->headers; // Заголовок $response->body; // Разобранное данные $response->raw_body; // Не разобранное данные |
В этом коде мы отправляем запрос на сайт, но перед этим делаем два массива, первый для заголовка, второй для данных запроса, отправляем POST запрос и ответ сохраняем в переменную $response
.
Также вы можете отправлять данные в качестве JSON массива, для этого нужно использовать не большую команду.
1 2 3 4 | // Создаём данные для отправки $data = array('name' => 'ahmad', 'company' => 'mashape'); // Превращаем массив в JSON $body = Unirest\Request\Body::json($data); |
Таким образом вы создаёте из обычного массива, JSON, специально для отправки.
Примечание:
Если вы будите использовать JSON, то:
Content-Type
в заголовке должен иметь значениеapplication/json
;- переменная данных будет обрабатываться через
json_encode()
со значениями по умолчанию для аргументов; - будет выдана ошибка, если расширение JSON недоступно;
Ещё мы тут использовали только POST запрос, но есть ещё.
1 2 3 4 5 | Unirest\Request::get($url, $headers = array(), $parameters = null) // GET запрос Unirest\Request::post($url, $headers = array(), $body = null) // POST запрос Unirest\Request::put($url, $headers = array(), $body = null) // PUT запрос Unirest\Request::patch($url, $headers = array(), $body = null) // PATCH запрос Unirest\Request::delete($url, $headers = array(), $body = null) // DELETE запрос |
Тут показаны все типы запросов, которые можно использовать в этой библиотеки.
Вывод:
В этой статье вы прочитали про библиотеку Unirest для языка программирования PHP, тут были основы её, но в тоже время это был не большой пересказ документации из GitHub проекта.