Команди SDK Bundle

← Команди SDK Bundle

Ashterix

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

uk/docs/api/sdk/bundle/commands.md новий файл +60 −0

1 + # Команди SDK Bundle
2 +
3 + ## `ufo:sdk:generate`
4 +
5 + Генерує SDK для всіх постачальників з [конфігурації](/docs/api/sdk/bundle/config) — по черзі запускає `ufo:sdk:make` з параметрами кожного.
6 +
7 + ```bash
8 + bin/console ufo:sdk:generate
9 + bin/console ufo:sdk:generate --vendor=Orders # лише один постачальник
10 + ```
11 +
12 + | Опція | Опис |
13 + | --- | --- |
14 + | `--vendor` | Назва постачальника (`vendors[].name`) |
15 +
16 + :::warning
17 + Команда завершується з повідомленням «Generate SDK is complete» і кодом успіху, навіть якщо генерація постачальника впала або назву `--vendor` не знайдено. Перевіряйте вивід — див. [Актуальні помилки](/docs/api/sdk/bundle/known_issues/open).
18 + :::
19 +
20 + ## `ufo:sdk:make`
21 +
22 + Генерує SDK для одного сервера без запису в конфігурацію.
23 +
24 + ```bash
25 + bin/console ufo:sdk:make Orders https://orders.example.com/rpc -t Ufo-RPC-Token -s "$TOKEN" -i "Admin.*,~Report.*"
26 + bin/console ufo:sdk:make Billing docs/billing-openrpc.json
27 + ```
28 +
29 + | Аргумент / опція | Опис |
30 + | --- | --- |
31 + | `vendor` | Назва постачальника — частина простору імен |
32 + | `api_doc` | URL документації OpenRPC або шлях до локального JSON-файлу |
33 + | `-t`, `--token_name` | Назва заголовка з токеном для запиту документації |
34 + | `-s`, `--token` | Токен |
35 + | `-i`, `--ignore` | [Маски методів](/docs/api/sdk/client/generation) через кому |
36 +
37 + Заголовок з токеном надсилається, лише коли задано обидві опції `-t` і `-s`.
38 +
39 + :::info
40 + Класи постачальника, якого немає в конфігурації, генеруються, але бандл не налаштує для них сервіси (токен, обробники відповіді). Для постійного використання додайте постачальника в `vendors`.
41 + :::
42 +
43 + ## Що генерується
44 +
45 + Для `namespace: App\Sdk` і постачальника `Orders` (каталог — за PSR-4, зазвичай `src/Sdk/Orders/`):
46 +
47 + * класи процедур `UserSDK`, `OrderSDK`, … і, якщо сервер публікує асинхронний транспорт, `AsyncUserSDK`, …;
48 + * `DTO/` і `Enums/`;
49 + * `sdk_config.yaml.dist` у корені простору імен з адресами всіх постачальників.
50 +
51 + Повна схема іменування — [Генерація SDK](/docs/api/sdk/client/generation).
52 +
53 + ## Коли перегенеровувати
54 +
55 + * після зміни методів, параметрів чи DTO на сервері;
56 + * після оновлення Client SDK або SDK Bundle до нової мажорної версії.
57 +
58 + Документація сервера кешується в `cache.app` на `cache.ttl` секунд. Щоб одразу отримати зміни, виконайте `bin/console cache:clear` або тимчасово зменште `cache.ttl`.
59 +
60 + Згенеровані файли переписуються повністю — не редагуйте їх вручну. Чи комітити їх у репозиторій, вирішуєте ви: закомічений SDK не залежить від доступності сервера під час збирання.