docs: rewrite JsonRpcBundle docs, add SDK docs, move them under docs/api
uk/docs/api/sdk/bundle/installation.md
new file +75
−0
1
+
# Встановлення SDK Bundle
2
+
3
+
## Крок 0: Рецепти Symfony Flex
4
+
5
+
Щоб Flex зробив налаштування автоматично, додайте репозиторій рецептів UFO-Tech у `composer.json` проєкту:
6
+
7
+
```json
8
+
{
9
+
"extra": {
10
+
"symfony": {
11
+
"endpoint": [
12
+
"https://api.github.com/repos/ufo-tech/recipes/contents/index.json?ref=main",
13
+
"flex://defaults"
14
+
]
15
+
}
16
+
}
17
+
}
18
+
```
19
+
20
+
## Крок 1: Встановлення
21
+
22
+
```bash
23
+
composer require ufo-tech/json-rpc-sdk-bundle
24
+
```
25
+
26
+
Рецепт реєструє бандл, створює `config/packages/json_rpc_sdk.yaml` і додає в `.env` змінні першого постачальника.
27
+
28
+
## Крок 2: Реєстрація бандла
29
+
30
+
Без рецепта додайте вручну в `config/bundles.php`:
31
+
32
+
```php
33
+
return [
34
+
// ...
35
+
Ufo\JsonRpcSdkBundle\JsonRpcSdkBundle::class => ['all' => true],
36
+
];
37
+
```
38
+
39
+
## Крок 3: Налаштування
40
+
41
+
```yaml
42
+
# config/packages/json_rpc_sdk.yaml
43
+
json_rpc_sdk:
44
+
namespace: App\Sdk
45
+
vendors:
46
+
- name: Orders
47
+
url: '%env(resolve:ORDERS_API_URL)%'
48
+
token_key: '%env(resolve:ORDERS_API_TOKEN_KEY)%'
49
+
token: '%env(resolve:ORDERS_API_TOKEN)%'
50
+
```
51
+
52
+
```dotenv
53
+
# .env.local
54
+
ORDERS_API_URL=https://orders.example.com/rpc
55
+
ORDERS_API_TOKEN_KEY=Ufo-RPC-Token
56
+
ORDERS_API_TOKEN=change-me
57
+
```
58
+
59
+
Усі параметри — на сторінці [Налаштування](/docs/api/sdk/bundle/config).
60
+
61
+
:::warning
62
+
Простір імен із `namespace` має бути в PSR-4 автозавантаження і в ресурсі сервісів застосунку з `autowire` і `autoconfigure`. Для стандартного Symfony-проєкту `App\Sdk` → `src/Sdk/` це вже так.
63
+
:::
64
+
65
+
## Крок 4: Генерація
66
+
67
+
```bash
68
+
bin/console ufo:sdk:generate
69
+
```
70
+
71
+
У `src/Sdk/Orders/` з'являться класи процедур, `DTO/`, `Enums/` і `sdk_config.yaml.dist`. Детально — [Команди](/docs/api/sdk/bundle/commands).
72
+
73
+
## Крок 5: Асинхронні виклики (за потреби)
74
+
75
+
Якщо сервер публікує асинхронний транспорт, генеруються й класи `Async*SDK`. Для них потрібен resolver транспорту — див. [Використання](/docs/api/sdk/bundle/usage).