magdv / diadoc-php
Diadoc API implementation
Installs: 4 676
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 2
Forks: 6
Open Issues: 1
Requires
- php: >=8.2
- ext-curl: *
- ext-json: *
- google/protobuf: ^3.21
- symfony/process: ^6.4
Requires (Dev)
- divineomega/do-file-cache: ^2.0
- overtrue/phplint: ^9.0
- phpunit/phpunit: ^8.5
- rector/rector: ^0.14.6
- squizlabs/php_codesniffer: ^3.5
- vimeo/psalm: ^3.8
This package is auto-updated.
Last update: 2024-12-18 12:37:38 UTC
README
Клиент API diadoc.ru.
За основу был взят другой клиент. https://github.com/agentsib/diadoc-php
Работа над ним давно тормознулась и пришлось добавлять новые методы, чтобы оно заработало.
Пример
<?php declare(strict_types=1); use Diadoc\Proto\GetOrganizationsByInnListRequest; require __DIR__ . '/vendor/autoload.php'; $api = new \MagDv\Diadoc\DiadocApi( '111111111111111111111111111111111', 'https://diadoc-api.kontur.ru/' ); $token = $api->authenticateLogin('ddddddddddd@google.com', 'vvllvlvlv'); // это место использовать только если уже есть токен, когда не надо повторно логиниться $api->setToken($token); // выводим список контрагентов нашей организации $orgId = 'ламлвоалоывлолыовлаоыловалоыва'; $contragents = $api->getCountragentsV2($orgId); // количество контрагентов var_dump($contragents->getTotalCount()); /** @var Diadoc\Proto\Counteragent $item */ foreach ($contragents->getCounteragents() as $item) { $org = $item->getOrganization(); // пример вывода данных из ответа if ($org) { $d = []; $d['konturId'] = $org->getOrgId(); $d['inn'] = $org->getInn(); $d['fullName'] = $org->getFullName(); $d['shortName'] = $org->getShortName(); $d['kpp'] = $org->getKpp(); $d['ogrn'] = $org->getOgrn(); $d['isRoaming'] = $org->getIsRoaming(); } var_dump($d); }
Тесты
Тест не дает полной картины работоспособности апи.
Мы не можем быть уверены, что нам всегда возвращают нужные данные, т.к. стенд тестовый.
Тут я скорее проверяют, что обращаюсь куда надо и что плюс-минус все работает.
Как вести разработку
В композере я подключил скрипты:
- Для кодстайла
composer fix-style
- Генерация php классов из proto файлов
composer generate-proto
. Чтобы генерация работала, надо чтобы в системе был установленprotobuf
- Запуск Ректора
composer rector
(подключил для разовой помощи, но решил оставить)
Можно также использовать Makefile
для всех перечисленных выше возможностей.
Генерация php классов из proto файлов
Вся логика по выборке прото файлов находится в файле testAuth.php
.
Если что - то новое появилось в описании апи диадока или вдруг тупо не хватает, то надо это изменить сначала в прото файлах.
- Идем в каталог
proto
тут ищем необходимое или добавляем новое. - Запукаем
composer generate-proto
- Смотрим, что у нас сгенерировалось в папке
phpProto
- Теперь надо заиспользовать новые поля в нашем коде.
Можно также использовать Makefile
для всех перечисленных выше возможностей.