Встановлення SDK Bundle

← Встановлення SDK Bundle

Ashterix

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

uk/docs/api/sdk/bundle/installation.md новий файл +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).