Как управлять облачной структурой хостинга с помощью PHP - Clouds API Class package blog онлайн урок.


Доступ к веб-API через HTTP

Если вы знакомы с REST API, вы должны знать о HTTP-вызовах, созданных для получения и отправки данных от клиента на сервер.

Что делать, если вы хотите создать клиент REST API в PHP? Ваш ответ может состоять в том, чтобы пойти с CURL. CURL - наиболее широко используемый метод для обработки HTTP-вызовов, но он накладывает несколько сложных шагов.

Давайте посмотрим простой запрос CURL в PHP:

$ url = "https: api.cloudways.com api v1"; $ resource = curl_init ($ url);
curl_setopt ($ ch, CURLOPT_HTTPHEADER, ["Accept: application json, Content-Type: application json"]);
curl_setopt ($ ch, CURLOPT_CUSTOMREQUEST, "GET");

Вам нужно вызвать метод curl_setopt () для определения заголовка и конкретного метода HTTP-запроса, такого как GET, POST, PUT и т. Д. Это не выглядит просто. Итак, что является лучшей надежной альтернативой?

Приходит Guzzle . Посмотрим, как Guzzle создает запрос:

$ client = new GuzzleHttp \ Client ();
$ res = $ client- & gt; request ("GET", "https: api.cloudways.com api v1", [
"headers" = & gt; [
"Accept" = & gt; "application json",
" Content-type "= & gt;" application json "
]]);

Вы можете видеть, что это просто. Вам просто нужно инициализировать клиента Guzzle и передать HTTP-метод и URL-адрес. После этого передайте массив заголовков и другие параметры.

Установка клиента Guzzle

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

  1. Отправка синхронных и асинхронных запросов.

  2. Он предоставляет простой интерфейс для построения строк запроса, запросов POST, потоковой передачи больших загрузок и загрузок, загрузки данных JSON и т. Д.

  3. Позволяет использовать другие совместимые с PSR7 библиотеки с помощью Guzzle.

  4. Позволяет писать агностический код среды и транспорта.

  5. Система промежуточного программного обеспечения позволяет вам дополнять и составлять поведение клиента.

Предпочтительным способом установки Guzzle является Composer. Если вы еще не установили Composer, загрузите его с здесь

Теперь, чтобы установить Guzzle, выполните следующую команду в терминале SSH:

composer require guzzlehttp guzzle

Эта команда установит последнюю версию Guzzle в вашем PHP проект. В качестве альтернативы вы также можете определить его как зависимость в файле composer.json и добавить в него следующий код.

{
"require": {
"guzzlehttp guzzle": "~ 6.0"
}
}

После этого запустите команду установки композитора. Затем вам нужно включить автозагрузчик и добавить еще несколько файлов для использования Guzzle:

require 'vendor autoload.php';
использовать GuzzleHttp \ Client;
использовать GuzzleHttp \ Exception \ RequestException;
использовать GuzzleHttp \ Psr7 \ Request;

Процесс установки завершен. Теперь пришло время работать с реальным примером HTTP-вызовов с API. Для этой статьи я буду работать с API Cloudways

Что вы можете сделать с API Cloudways?

Cloudways - это управляемый хостинг-провайдер для PHP, Magento, WordPress и многих других фреймворков и CMS. Он имеет API, который можно использовать для выполнения операций CRUD на серверах и приложениях.

Ознакомьтесь с популярными вариантами использования API-интерфейсов Cloudways , чтобы узнать, как вы можете интегрировать его в свои проекты.

В этой статье я собираюсь сделать HTTP-вызовы для выполнения определенных операций на серверах Cloudways.

Отправка HTTP-запросов

Как я уже упоминал ранее, отправка HTTP-запросов в Гоззле очень проста. Вам нужно только передать базовый URI, HTTP-метод и заголовки.

Если во внешнем API есть уровень аутентификации, вы также можете передать эти параметры. Аналогично, API-интерфейсам Cloudways требуется адрес электронной почты и ключ API для аутентификации пользователей и отправки ответа. Вам нужно зарегистрировать для учетной записи Cloudways , чтобы получить свои учетные данные API.

Начнем с использования файла CloudwaysAPI.php , чтобы настроить Guzzle для совершения HTTP-вызовов. Я также буду использовать методы класса для выполнения HTTP-вызовов от них.

URL-адрес API не меняется, поэтому я буду использовать с ним спецификатор const. После этого я свяжу его с другими суффиксами URL, чтобы получить ответ. Кроме того, я объявил переменные $ auth_key, $ auth_email, в которых будут храниться аутентификационные письма и ключ API. $ accessToken будет хранить временный токен, который будет обновляться каждый раз.

Создать почтовый запрос для доступа к токену

Маркер доступа будет создан из URL & nbsp; https: api.cloudways.com api v1 oauth access_token & nbsp; каждый раз, когда я обращаюсь к API. Это будет установлено в $ url с дополнительным массивом данных, который содержит учетные данные auth.

Позже я создал запрос POST с базовым URL и строкой запроса. Ответ будет декодирован, и токен доступа будет сохранен для всех методов.

Запрос POST для получения токена доступа завершен. Кроме того, если вы заметили в обработке исключений, я объявил метод StatusCodeHandling ($ e), который позаботится о кодах ответов (HTTP-коды, такие как 404, 401, 200 и т. Д.) И выбросит соответствующее исключение.

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

Создать запрос GET для извлечения всех серверов

После аутентификации пользователя я могу получить все мои серверы и приложения из Cloudways. server - это суффикс, объединенный с базовым URI. На этот раз я присоединяю accessToken с помощью строки авторизации в заголовке Guzzle для получения всех серверов в ответе JSON. Для этого я создал новый метод под названием getServers.

Теперь создайте файл index.php и включите CloudwaysAPIClient.php вверху. Затем я объявляю свой ключ API и электронную почту, передавая его конструктору класса, чтобы, наконец, получить серверы.

включает «CloudwaysApi.php»;
$ api_key = 'W9bqKxxxxxxxxxxxxxxxxxxxjEfY0';
$ email = 'shahroze.nawaz@cloudways.com';
$ cw_api = новый CloudwaysAPI ($ email, $ api_key);
$ servers = $ cw_api- & gt; getServers ();
echo '& lt; pre & gt;';
var_dump ($ servers);
echo '& lt; предварительно & GT; ';

Давайте проверим его в Postman, чтобы убедиться, что коды информации и правильного ответа выбиваются.

Примечание:Для локальной среды разработки Windows необходимо добавить файл cert.pem в папку PHP в XAMPP и добавить «curl.cainfo =» C: \ path \ to \ cacert.pem »в файл php.ini

Создать & nbsp; Удалить запрос на удаление сервера

Аналогичным образом вы также можете удалить облачный сервер, передав $ serverid методу deleteServer.

Запуск приложений на сервере

Вы также можете получать, создавать и удалять PHP-приложения на сервере путем передачи необходимых параметров. Для того чтобы все приложения просто использовали URL-адрес приложения.

Для создания приложения на любом из серверов вам необходимо передать 4 параметра $ serverid, $ application, & nbsp; $ app_version, $ app_name:

Вот некоторые основные варианты использования облачного API в PHP с помощью жука, вы также можете создавать методы для следующих случаев использования:

1. & nbsp; CloudwaysBot Api

2. Git Api

3. Управление ключами SSH Api

4. Безопасность Api

Загрузка и использование клиентского класса API Cloudways

Класс API клиента Cloudways можно загрузить и установить из ZIP-архива или с помощью инструмента Composer, используя инструкции, также доступные на странице загрузки.

Если вам понравились эти статьи, поделитесь ими с другими коллегами-разработчиками. Если у вас есть вопросы, напишите здесь.