moysklad / remap-1.2-php-sdk
SDK for manipulating entities and creating reports in the MoySklad online service.
Requires
- php: ^8.1
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- phpunit/phpunit: ^8.0 || ^9.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Официальный PHP SDK для МойСклад JSON API 1.2.
- Packagist: https://packagist.org/packages/moysklad/remap-1.2-php-sdk
- GitHub: https://github.com/moysklad/php-remap-1.2-sdk
- OpenAPI-спецификация: https://github.com/moysklad/api-remap-1.2-openapi-specification
Код SDK генерируется из OpenAPI-спецификации, поэтому правки нужно вносить в спецификацию, а не в этот репозиторий.
Требования
- PHP 8.1+
- Расширения
curl,json,mbstring
Установка
composer require moysklad/remap-1.2-php-sdk
Классы SDK находятся в пространстве имён OpenAPI\Client и подключаются через автозагрузчик Composer.
Авторизация
МойСклад поддерживает Bearer-токен и Basic Auth. Учётные данные задаются в Configuration.
Токен доступа:
$config = (new \OpenAPI\Client\Configuration()) ->setAccessToken(getenv('MOYSKLAD_TOKEN'));
Логин и пароль:
$config = (new \OpenAPI\Client\Configuration()) ->setUsername(getenv('MOYSKLAD_LOGIN')) ->setPassword(getenv('MOYSKLAD_PASSWORD'));
По умолчанию запросы идут на https://api.moysklad.ru/api/remap/1.2. Другой адрес задаётся через $config->setHost(...).
Пример запроса
<?php require_once __DIR__ . '/vendor/autoload.php'; use GuzzleHttp\Client; use OpenAPI\Client\Api\ProductsApi; use OpenAPI\Client\ApiException; use OpenAPI\Client\Configuration; $config = (new Configuration()) ->setAccessToken(getenv('MOYSKLAD_TOKEN')); $productsApi = new ProductsApi(new Client(), $config); try { $products = $productsApi->getProducts(limit: 10); foreach ($products->getRows() ?? [] as $product) { echo $product->getId(), ' ', $product->getName(), PHP_EOL; } } catch (ApiException $e) { echo $e->getCode(), ' ', $e->getResponseBody(), PHP_EOL; }
Ошибки API выбрасывают ApiException с HTTP-статусом в getCode() и телом ответа в getResponseBody().
Лицензия
Apache-2.0, см. текст лицензии.