You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
/// ... Подключение пакета (require_once 'vendor/autoload.php')useWhatis\WBAPI\Client\Client;
useWhatis\WBAPI\ServiceManager;
useWhatis\WBAPI\ServiceCompositor;
useWhatis\WBAPI\Package\DefaultPackage;
$token'some.jwt.token.-asdffsdfJLA';
// С использованием клиента$manager = newServiceManager(newClient($clientId, $token));
// Без использования клиента$manager = newServiceManager($token);
// Для работы с сервисами по-умолчанию, необходимо// расширить менеджер пакетом DefaultPackage$manager->package(newDefaultPackage);
// Вы можете расширять менеджер своими сервисами,// например, создать псевдоним для существующего$manager->extend('prices', fn ($manager) => $manager->service('v1/prices'));
// Или скомпановать несколько сервисов// под одним названием$manager->extend('composed', fn ($manager) => newServiceCompositor([
$manager->creator('v1/prices'),
$manager->creator('v1/statistics')
]));
// Стандартное использованиеvar_dump($manager->use('prices')->get());
var_dump($manager->use('v1/prices')->get());
var_dump($manager->use('composed')->get());
// С автоматическим поиском сервиса и метода.// Это работает так: делится название метода по// Camel|Case, если находит название сервиса// по одному из разделенных слов, то удаляет// его из названия метода и вызывает его// из сервиса: pricesGet->|prices|get// getPrices->get|Prices|var_dump($manager->pricesGet());
var_dump($manager->getPrices());
// ...
Создание своего сервиса
<?php/// ... Подключение пакета (require_once 'vendor/autoload.php')namespaceWhatis\WBAPI\Example;
useWhatis\WBAPI\Service\BaseService;
// Атрибут, необходимый для создания// карты api методов->методов классаuseWhatis\WBAPI\Attribute\Mapping;
useDateTime;
useDateTimeZone;
/** * Пример сервиса * * PHP version 8 * * @category Example * @package WBAPI * @author Whatis <anton-gogo@mail.ru> * @license unlicense * @link https://github.com/TheWhatis/wb-api-skeleton */class Service extends BaseService
{
/** * Получить базовый uri * * @return string */publicstaticfunctionbasePath(): string
{
return'api/v3/';
}
/** * Получить что-то * * @return mixed */
#[Mapping('orders')]
publicfunctionget(): mixed
{
$timezone = newDateTimeZone('UTC');
$dateTo = newDateTime('now', $timezone);
$dateFrom = newDateTime('-3 day', $timezone);
return$this->request(
'GET', 'orders', [
'limit' => 10,
'next' => 0,
'dateFrom' => $dateFrom->getTimestamp(),
'dateTo' => $dateTo->getTimestamp()
]
);
}
// ...
}