cdek-php / api
Минималистичный HTTP-клиент для работы с API CDEK.
Requires
- php: >=8.0
- guzzlehttp/guzzle: ^7.8
- illuminate/collections: ^10
- symfony/cache: ^6.4
Requires (Dev)
- symfony/var-dumper: ^6.4
README
📦 Минималистичный HTTP-клиент для работы с API CDEK.
Перед началом работы
Данная библиотека не предоставляет описание методов API, это простой HTTP-клиент который содержит метод авторизации (получение токена) и методы запроса к API.
Вы должны иметь всегда под рукой документацию от СДЕК для сверки с необходимыми методами.
Установка
composer require cdek-php/api
Примеры
Примеры использования библиотеки можно найти в папке examples.
Документация
Авторизация
Тестовая среда
use Cdek\Client; $client = new Client('EMscd6r9JnFiQ3bLoyjJY6eM78JrJceI', 'PjLZkKBHEiLK3YsjtNrt3TGNG0ahs3kG');
Пример рабочей тестовой авторизации можно найти в этом примере.
Боевая среда
use Cdek\Client; use Cdek\Enums\Endpoint; $client = new Client('client-id', 'client-secret', Endpoint::PROD);
По умолчанию используется тестовая среда, чтобы начать работать в боевой среде, необхоимо передать параметр endpoint
со значением Cdek\Enums\Endpoint::PROD
.
Авторизация с помощью $_ENV
Библиотека поддерживает авторизация с помощью $_ENV
, вы можете задать параметры конструктора client_id
, client_secret
и endpoint
например в .env файле приложения.
# .env CDEK_API_CLIENT_ID=EMscd6r9JnFiQ3bLoyjJY6eM78JrJceI CDEK_API_CLIENT_SECRET=PjLZkKBHEiLK3YsjtNrt3TGNG0ahs3kG CDEK_API_ENDPOINT=dev # dev - тестовая среда, prod - боевая среда
// cdek.php use Cdek\Client; $client = new Client; // без client_id, client_secret и endpoint
Пример авторизации через окружение можно найти в этом примере.
Токен
Токен генерируется при любом запросе к API (они описаны ниже), после чего кэшируется на указанный в ответе срок.
getToken(): string
Возвращает действующий токен.
$token = $client->getToken();
Запросы к API
api(string $method, string $endpoint, array $parameters = []): Collection
Возвращает объект коллекции (см. документацию по работе с Laravel коллекцией).
# https://api-docs.cdek.ru/36982648.html $client->api('get', 'deliverypoints', [ 'size' => 10, ]);
get(string $endpoint, array $parameters = []): Collection
Выполнить GET-запрос к API.
Возвращает объект коллекции (см. документацию по работе с Laravel коллекцией).
# https://api-docs.cdek.ru/36982648.html $client->get('deliverypoints', [ 'size' => 10, ]);
post(string $endpoint, array $parameters = []): Collection
Выполнить POST-запрос к API.
Возвращает объект коллекции (см. документацию по работе с Laravel коллекцией).
$client->post(..., [...]);
patch(string $endpoint, array $parameters = []): Collection
Выполнить PATCH-запрос к API.
Возвращает объект коллекции (см. документацию по работе с Laravel коллекцией).
$client->patch(..., [...]);
delete(string $endpoint, array $parameters = []): Collection
Выполнить DELETE-запрос к API.
Возвращает объект коллекции (см. документацию по работе с Laravel коллекцией).
$client->delete(..., [...]);
Лицензия
MIT.