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