Команди SDK Bundle

← Команди SDK Bundle

Ashterix

docs: rewrite JsonRpcBundle docs, add SDK docs, move them under docs/api

uk/docs/api/sdk/bundle/commands.md new file +60 −0

Команди 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 не залежить від доступності сервера під час збирання.