phpsoftbox / yandex-market
Yandex Market Partner API client component for the PhpSoftBox framework
dev-master
2026-07-02 10:48 UTC
Requires
- php: ^8.4
- phpsoftbox/collection: dev-master
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.93
- phpsoftbox/cli-app: dev-master
- phpsoftbox/code-generator: dev-master
- phpsoftbox/cs-fixer: ^1.1.0
- phpsoftbox/http-message: dev-master
- phpunit/phpunit: ^11.2
- symfony/yaml: ^7.0
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().