magdv/cargo-php-api-client

Cargomart.ru API 客户端

1.6.0 2024-07-26 07:42 UTC

This package is auto-updated.

Last update: 2024-09-26 08:02:48 UTC


README

Cargomart.ru API 客户端.

示例

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

待办事项

  • 发送文件的多部分/form-data 请求
  • 已弃用参数、标签以及其他按方案的备注
  • 按方案验证参数格式
  • 调试模式
  • 移除 Guzzle 的推荐,绑定到 PSR