whatis / wbapi
Библиотека для взаимодействия с wildberries api
0.8.7
2024-04-05 11:09 UTC
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.8
Requires (Dev)
- php: ^8.2
- saggre/phpdocumentor-markdown: ^0.1.3
This package is not auto-updated.
Last update: 2024-11-01 13:42:18 UTC
README
Документация
Установка
composer require whatis/wbapi
Использование
Использование с ServiceManager
/// ... Подключение пакета (require_once 'vendor/autoload.php') use Whatis\WBAPI\Client\Client; use Whatis\WBAPI\V1\Prices; $token 'some.jwt.token.-asdffsdfJLA'; $prices = new Prices(new Client($clientId, $token)); var_dump($prices->get()); // ...
С использованием ServiceManager
/// ... Подключение пакета (require_once 'vendor/autoload.php') use Whatis\WBAPI\Client\Client; use Whatis\WBAPI\ServiceManager; use Whatis\WBAPI\ServiceCompositor; use Whatis\WBAPI\Package\DefaultPackage; $token 'some.jwt.token.-asdffsdfJLA'; // С использованием клиента $manager = new ServiceManager(new Client($clientId, $token)); // Без использования клиента $manager = new ServiceManager($token); // Для работы с сервисами по-умолчанию, необходимо // расширить менеджер пакетом DefaultPackage $manager->package(new DefaultPackage); // Вы можете расширять менеджер своими сервисами, // например, создать псевдоним для существующего $manager->extend('prices', fn ($manager) => $manager->service('v1/prices')); // Или скомпановать несколько сервисов // под одним названием $manager->extend('composed', fn ($manager) => new ServiceCompositor([ $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') namespace Whatis\WBAPI\Example; use Whatis\WBAPI\Service\BaseService; // Атрибут, необходимый для создания // карты api методов->методов класса use Whatis\WBAPI\Attribute\Mapping; use DateTime; use DateTimeZone; /** * Пример сервиса * * 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 */ public static function basePath(): string { return 'api/v3/'; } /** * Получить что-то * * @return mixed */ #[Mapping('orders')] public function get(): mixed { $timezone = new DateTimeZone('UTC'); $dateTo = new DateTime('now', $timezone); $dateFrom = new DateTime('-3 day', $timezone); return $this->request( 'GET', 'orders', [ 'limit' => 10, 'next' => 0, 'dateFrom' => $dateFrom->getTimestamp(), 'dateTo' => $dateTo->getTimestamp() ] ); } // ... }