Download the PHP package runet-id/api-client without Composer
On this page you can find all versions of the php package runet-id/api-client. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download runet-id/api-client
More information about runet-id/api-client
Files in runet-id/api-client
Informations about the package api-client
Официальный API-клиент RUNET-ID для PHP
Установка
Выполните установку пакетов.
$ composer require runet-id/api-client:^3.0@beta php-http/discovery guzzlehttp/psr7 php-http/guzzle6-adapter
Пакет php-http/discovery
необходим для быстрого старта. Позднее Discovery можно заменить явными инъекциями HTTP-клиента и PSR-7 фабрик. Подробнее в разделе Удаление библиотеки Discovery.
Вместо guzzlehttp/psr7
вы можете использовать любую имплементацию PSR-7 сообщений, например, zendframework/zend-diactoros.
Вместо php-http/guzzle6-adapter
вы можете использовать любую имплементацию HTTP-клиента, например, cURL client или Socket client.
Использование
Получение постраничных данных
Поставляемые с библиотекой endpoint-ы автоматически получают постраничные данные.
Для запроса постраничных данных используеся метод RunetIdClient::requestPaginated(RequestInterface $request, string $itemsKey)
.
Аргумент $itemsKey
принимает ключ, по которому можно найти массив постраничных данных. Например, для метода /event/users
$itemsKey = 'Users''
.
В результирующем массиве по ключу $itemsKey
будет содержаться генератор, обеспечивающий lazy-loading.
Выбрасываемые исключения
-
Http\Client\Exception
будет выброшено при ошибке выполнения запроса. Подробнее о классах исключений HTTPLUG. В частности,Http\Client\Common\Exception\ClientErrorException
будет выброшено при коде ответа 4xx,Http\Client\Common\Exception\ServerErrorException
будет выброшено при коде ответа 5xx.
-
RunetId\Client\Exception\JsonDecodeException
будет выброшено при ошибке парсинга JSON. -
RunetId\Client\Exception\RunetIdException
будет выброшено при ошибке API RUNET-ID. -
RunetId\Client\Exception\ResultFactoryException
будет выброшено при ошибке создания объекта результата. RunetId\Client\Exception\UnexpectedPaginatedDataException
будет выброшено при неверном формате ответа в методеRunetIdClient::requestPaginated()
.
Подробнее об объектах Result
Конфигурация
Поставляемая с библиотекой фабрика также позволяет использовать любые плагины проекта PHP-HTTP. Для этого передайте массив плагинов 4-ым аргументом.
Например, для логгирования запросов при помощи PSR-3 логгера, установите пакет php-http/logger-plugin
и подключите плагин к клиенту RUNET-ID (подробнее в документации PHP-HTTP).
5-ым аргументом можно передать специально сконфигурированный для создаваемого клиента экземпляр Http\Client\HttpClient
, который будет декорирован фабрикой для работы с RUNET-ID. По умолчанию используется HTTP-клиент, переданный в конструктор фабрики или клиент, найденный Discovery.
Удаление библиотеки Discovery
Библиотека php-http/discovery позволяет находить установленные имплементации HTTP-клиента и PSR-7 фабрик и, например, использовать их в качестве инъекций по умолчанию.
Зависимость от php-http/discovery
мягкая. Чтобы удалить данный пакет из сборки, необходимо явно передать в конструктор фабрики имплементации HTTP-клиента и PSR-7 фабрик.
Например, если в проекте используется Guzzle 6, инициализация фабрики будет выглядеть следующим образом:
После этого можно удалить пакет Discovery composer remove php-http/discovery
.
Тестирование
vendor/bin/simple-phpunit --coverage-text
All versions of api-client with dependencies
php-http/client-common Version ^1.9 || ^2.0
php-http/client-implementation Version ^1.0
php-http/httplug Version ^1.0 || ^2.0
php-http/message Version ^1.6