Как получить доступ к API отдыха в Symfony 3

REST — это архитектурный стиль для проектирования сетевых приложений. Идея состоит в том, что вместо использования сложных механизмов, таких как CORBA, RPC или SOAP, для соединения между машинами, простой HTTP используется для выполнения вызовов между машинами. Во многих отношениях сама Всемирная паутина, основанная на HTTP, может рассматриваться как архитектура на основе REST. Приложения RESTful используют HTTP-запросы для публикации данных (создания и / или обновления), чтения данных (например, выполнения запросов) и удаления данных. Таким образом, REST использует HTTP для всех четырех операций CRUD (создание / чтение / обновление / удаление).

Поскольку REST API использует HTTP, они могут использоваться практически любым языком программирования и легко тестироваться (для REST API требуется, чтобы клиент и сервер были независимы друг от друга, что позволяло либо кодироваться на любом языке, но и улучшать поддержку долголетия и эволюция).

Веб-сервис RESTful (также называемый веб-API RESTful) — это веб-сервис, реализованный с использованием HTTP и принципов REST.

По сути, для доступа к API нам нужно выполнить запрос в разных форматах в соответствии с действием, которое мы хотим достичь с конечной точкой API (URL). С javascript простой XMLHttpRequest должен справиться с задачей, но с PHP есть другой способ добиться этого, названный cURL.

cURL — это библиотека, которая позволяет вам делать HTTP-запросы в PHP. Все, что вам нужно знать об этом (и большинстве других расширений), можно найти в руководстве по PHP. Чтобы использовать функции PHP cURL, хотя большинство дистрибутивов PHP уже установили cURL, если это не ваш случай, вам нужно установить пакет »libcURL.

Используя cURL самостоятельно

Как упоминалось ранее, cURL — это способ доступа к успокоительному API из PHP.

Следующий метод поможет вам получить

Замечания: рекомендуется использовать библиотеку вместо простого cURL.

 "value") ==> index.php?param=value
function CallAPI($method, $url, $data = false)
{
$curl = curl_init();
switch ($method)
{
case "POST":
curl_setopt($curl, CURLOPT_POST, 1);
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
case "PUT":
curl_setopt($curl, CURLOPT_PUT, 1);
break;
default:
if ($data)
$url = sprintf("%s?%s", $url, http_build_query($data));
}
// Optional Authentication:
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "username:password");
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
return $result;
}

Если произошла ошибка, метод вернет false. Вы можете прочитать следующую тему, которая объясняет, как обрабатывать ошибки, используя cURL.

Использовать библиотеку (Unirest)

Использование библиотек вместо изобретения колеса, поэтому лучше использовать Unirest вместо написания собственных функций запроса, поскольку эта библиотека решает множество общих проблем, с которыми вы столкнетесь при использовании простого cURL, и она поддерживается.

Unirest — это набор облегченных библиотек HTTP, доступных на нескольких языках, созданный и поддерживаемый Mashape, который также поддерживает API-интерфейс с открытым исходным кодом Gateway Kong.

Характеристики

  • Служебные методы для вызова GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH Запросы.
  • Поддерживает параметры формы, загрузки файлов и настраиваемые объекты тела.
  • Поддерживает gzip.
  • Поддержка базовой, дайджест, согласования, аутентификации NTLM.
  • Настраиваемый тайм-аут.
  • Настраиваемые заголовки по умолчанию для каждого запроса (DRY).
  • Автоматический анализ JSON в нативный объект для ответов JSON.

Требования

  • завивать
  • PHP 5.4+

Чтобы установить Unirest PHP в вашем проекте, используйте composer. Вы можете добавить следующую строку в ваш файл composer.json:

{
"require-dev": {
"mashape/unirest-php": "2.*"
}
}

Или вместо этого выполните команду в консоли:

composer require mashape/unirest-php

Тогда вы сможете использовать Unirest, добавив простой оператор использования в начало вашего класса use Unirest;,

Использование unirest

В следующем коде показан простой запрос GET к конечной точке / search API Spotify.

 'application/json');
$query = array('q' => 'Frank sinatra', 'type' => 'track');
$response = Unirest\Request::get('https://api.spotify.com/v1/search',$headers,$query);
// or use a plain text request
// $response = Unirest\Request::get('https://api.spotify.com/v1/search?q=Frank%20sinatra&type=track');
// Display the result
dump($response->body);

Замечания : если код выдает ошибку «Проблема с сертификатом SSL: невозможно получить сертификат локального эмитента» при использовании Unirest с HTTPS API, Вы можете прочитать следующую статью, чтобы узнать, как ее решить.

Тело запроса Spotify API

Переменная ответа имеет следующие свойства:

  • headers [Array]: Массив с заголовком запроса (Дата, Сервер и т. д.).
  • тело
  • код [Int]: код ответа на запрос.
  • raw_body: необработанное содержимое запроса.

Обратите внимание, что свойство body было автоматически преобразовано в массив, поскольку API возвращает ответ в формате JSON. Узнайте больше о Unirest PHP на официальном сайте.

Используйте наиболее распространенные методы unirest:

Повеселись !

Ссылка на основную публикацию
Adblock
detector