Skip to content

anktx/cloud-dns-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

For english documentation see README.en.md

Cloud.ru DNS API client

Latest Stable Version Total Downloads

Пакет предоставляет PHP-обёртку для взаимодействия с DNS API Cloud.ru.

Требования

  • PHP 8.2 или выше.

Установка

composer require anktx/cloud-dns-client

Общие указания

Для ваимодействия Cloud.ru DNS API, необходимо создать экземпляр класса CloudDnsApi. Это класс требует реализацию интерфейса PSR-18 ClientInterface и HttpAdapter, который в свою очередь требует реализации PSR-17 RequestFactoryInterface и StreamFactoryInterface.

Вы можете использовать пакеты kriswallsmith/buzz и nyholm/psr7 для этого:

composer require kriswallsmith/buzz nyholm/psr7

Вот как можно создать экзмепляр CloudDnsApi:

use Anktx\Cloud\Dns\Client\Client\HttpAdapter;
use Anktx\Cloud\Dns\Client\CloudDnsApi;
use Buzz\Client\Curl;
use Nyholm\Psr7\Factory\Psr17Factory;

// Зависимости
$psr17Factory = new Psr17Factory();
$httpAdapter = new HttpAdapter($psr17Factory, $psr17Factory);
$httpClient = new Curl($psr17Factory);

// API
$api = new CloudDnsApi(
    client: $httpClient,
    httpAdapter: $httpAdapter,
);

Сначала получите токен аутентификации и передате его в HttpAdapter:

$token = $api->authenticate('CLIENT_ID', 'CLIENT_SECRET');
$httpAdapter->setToken($token);

Теперь вы можете использовать экземпляр $api для взаимодействия с Cloud.ru DNS API.

// Получение зон
$api->getZones('PROJECT_ID');

// Создание зоны
$api->createZone('New zone', 'PROJECT_ID');

Результат будет либо экземпляром FailResult (в случае ошибки), либо объектом соответствующего типа (в случае успеха). Например:

// Результат - коллекция объектов `Record`
$records = $api->getRecords('ZONE_ID');

foreach ($records as $record) {
    echo 'name: ' . $record->name . ' ttl: ' . $record->ttl . \PHP_EOL;
}

About

Cloud.ru DNS API client

Topics

Resources

Stars

Watchers

Forks

Languages