Команди SDK Bundle
ufo:sdk:generate
Генерує SDK для всіх постачальників з конфігурації — по черзі запускає ufo:sdk:make з параметрами кожного.
bin/console ufo:sdk:generate
bin/console ufo:sdk:generate --vendor=Orders # лише один постачальник
| Опція | Опис |
|---|---|
--vendor |
Назва постачальника (vendors[].name) |
Команда завершується з повідомленням «Generate SDK is complete» і кодом успіху, навіть якщо генерація постачальника впала або назву --vendor не знайдено. Перевіряйте вивід — див. Актуальні помилки.
ufo:sdk:make
Генерує SDK для одного сервера без запису в конфігурацію.
bin/console ufo:sdk:make Orders https://orders.example.com/rpc -t Ufo-RPC-Token -s "$TOKEN" -i "Admin.*,~Report.*"
bin/console ufo:sdk:make Billing docs/billing-openrpc.json
| Аргумент / опція | Опис |
|---|---|
vendor |
Назва постачальника — частина простору імен |
api_doc |
URL документації OpenRPC або шлях до локального JSON-файлу |
-t, --token_name |
Назва заголовка з токеном для запиту документації |
-s, --token |
Токен |
-i, --ignore |
Маски методів через кому |
Заголовок з токеном надсилається, лише коли задано обидві опції -t і -s.
Класи постачальника, якого немає в конфігурації, генеруються, але бандл не налаштує для них сервіси (токен, обробники відповіді). Для постійного використання додайте постачальника в vendors.
Що генерується
Для namespace: App\Sdk і постачальника Orders (каталог — за PSR-4, зазвичай src/Sdk/Orders/):
- класи процедур
UserSDK,OrderSDK, … і, якщо сервер публікує асинхронний транспорт,AsyncUserSDK, …; DTO/іEnums/;sdk_config.yaml.distу корені простору імен з адресами всіх постачальників.
Повна схема іменування — Генерація SDK.
Коли перегенеровувати
- після зміни методів, параметрів чи DTO на сервері;
- після оновлення Client SDK або SDK Bundle до нової мажорної версії.
Документація сервера кешується в cache.app на cache.ttl секунд. Щоб одразу отримати зміни, виконайте bin/console cache:clear або тимчасово зменште cache.ttl.
Згенеровані файли переписуються повністю — не редагуйте їх вручну. Чи комітити їх у репозиторій, вирішуєте ви: закомічений SDK не залежить від доступності сервера під час збирання.