magdv/cargo-php-api-client

Cargomart.ru API client

1.6.0 2024-07-26 07:42 UTC

This package is auto-updated.

Last update: 2024-10-26 08:11:24 UTC


README

Клиент API Cargomart.ru.

Пример

use Cargomart\ApiClient\Authentication\LoginPasswordAuthentication;
use Cargomart\ApiClient\Authentication\PsrCacheSessionStorage;
use Cargomart\ApiClient\Authentication\StorageWrapperAuthentication;
use Cargomart\ApiClient\Client;
use Cargomart\ApiClient\Entity\Order\Requests\OrderCreateRequest;
use GuzzleHttp\Client as GuzzleClient;

$guzzle = new GuzzleClient(['base_uri' => 'https://cargomart.ru']);
$client = new Client(
    $guzzle, 
    new StorageWrapperAuthentication(
        new LoginPasswordAuthentication('login', 'password'),
        new PsrCacheSessionStorage($cache)
    )
);

$listReq = $client->apiV2()->order()->get(); // подготовка GET api/v2/order

$rsp = $listReq
    ->qFilterBelong('all')
    ->qFilterStatus([3,4])
    ->do()
; 
// исполнение GET api/v2/order?filter[belong]=all&filter[status][]=3&filter[status][]=4
var_export($rsp->data->order);


$rsp = $listReq
    // Установка заголовка.
    ->xModifyFromEventHeader((int)$rsp->headers['X-Last-Event-Num'] - 10)
    ->do()
;
var_export($rsp->data->order);

$data = new OrderCreateRequest();
$data->isGeneralPartner = true;
$data->kind = 'ftl';
// Пост запрос с телом-объектом.
$rsp = $client->apiV2()->order()->post()->do($data);
var_export($rsp->status);
var_export($rsp->message[0]->title);

Разработка

Перед коммитом:

vendor/bin/php-cs-fixer fix .
vendor/bin/psalm
vendor/bin/phpunit

TODO

  • Запросы multipart/form-data для отправки файлов
  • Deprecated параметры, тэги и прочие пометки по схеме
  • Проверка формата параметра по схеме
  • Отладочный режим
  • Убрать Guzzle в рекомендации, завязаться на PSR