phpsoftbox/yandex-market

Yandex Market Partner API client component for the PhpSoftBox framework

Maintainers

Package info

github.com/phpsoftbox/yandex-market

pkg:composer/phpsoftbox/yandex-market

Transparency log

Statistics

Installs: 8

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-master 2026-07-02 10:48 UTC

This package is auto-updated.

Last update: 2026-07-02 10:48:39 UTC


README

About

phpsoftbox/yandex-market — API-клиент Yandex Market Partner API на базе PSR-18.

Компонент включает:

  • YandexMarketApiClient с auth через Api-Key или Authorization: Bearer;
  • универсальные HTTP-методы get/post/put/patch/delete/request;
  • helper версии API: v1() и v2();
  • ответы в YandexMarketApiResponse, совместимом с PhpSoftBox\Collection\Collection;
  • YandexMarketApiResponse::makeDto() для явного преобразования ответа в DTO после генерации карты;
  • YandexMarketException со статусом и payload.

Источник спецификации

  • документация: https://yandex.ru/dev/market/partner-api/doc/ru/concepts/openapi
  • OpenAPI git: https://github.com/yandex-market/yandex-market-partner-api (openapi/openapi.yaml)

Quick Start

use PhpSoftBox\Http\Message\RequestFactory;
use PhpSoftBox\Http\Message\StreamFactory;
use PhpSoftBox\YandexMarket\YandexMarketApiClient;

$client = new YandexMarketApiClient(
    token: $_ENV['YANDEX_MARKET_API_KEY'],
    httpClient: $psr18Client,
    requestFactory: new RequestFactory(),
    streamFactory: new StreamFactory(),
);

$orders = $client->v2('campaigns/123')->get('/orders', [
    'limit' => 50,
]);

DTO ответы

Wrapper-методы остаются совместимыми с Collection. Если для endpoint-а есть сгенерированный DTO, response можно явно преобразовать:

$orders = $client->v2('campaigns/123')->get('/orders')->makeDto();

Генерация DTO

Генератор ожидает локальный OpenAPI YAML/JSON файл. По умолчанию используется docs/openapi.yaml:

vendor/bin/psb yandex-market:openapi:generate-dto

Можно указать путь явно:

vendor/bin/psb yandex-market:openapi:generate-dto --spec=docs/openapi.yaml

Команда обновляет src/Dto и src/Dto/YandexMarketResponseDtoMap.php. Wrapper-классы не меняются: основной контракт остается YandexMarketApiResponse/Collection, а DTO создаются явно через makeDto().