← Актуальні помилки SDK Bundle
docs: rewrite JsonRpcBundle docs, add SDK docs, move them under docs/api
uk/docs/api/sdk/bundle/known_issues/open.md
new file +25
−0
1
+
# Актуальні помилки SDK Bundle
2
+
3
+
Відомі помилки й нестиковки поточної версії `ufo-tech/json-rpc-sdk-bundle` (4.0.0). Помилки самого генератора й базових класів — у [Client SDK](/docs/api/sdk/client/known_issues/open). Виправлені — на сторінці [Виправлені помилки](/docs/api/sdk/bundle/known_issues/fixed).
4
+
5
+
<include>(.issues/compiler-silent-errors.md)
6
+
7
+
---
8
+
9
+
<include>(.issues/generate-reports-success.md)
10
+
11
+
---
12
+
13
+
<include>(.issues/empty-token-header.md)
14
+
15
+
---
16
+
17
+
<include>(.issues/namespace-default-mismatch.md)
18
+
19
+
---
20
+
21
+
<include>(.issues/undeclared-dependencies.md)
22
+
23
+
---
24
+
25
+
<include>(.issues/readme-outdated.md)
uk/docs/api/sdk/bundle/known_issues/.issues/compiler-silent-errors.md
new file +11
−0
1
+
### Компілятор мовчки пропускає класи поза налаштованими постачальниками
2
+
3
+
:::warning subtitle="Актуальна"
4
+
Зачеплені версії: 4.0.0 (поточна). Перевірено за кодом тегу 4.0.0.
5
+
:::
6
+
7
+
**Симптом.** Згенерований клас працює без токена (сервер відповідає `-32401`) і без обробників відповіді з контейнера, хоча помилок під час збирання контейнера немає.
8
+
9
+
**Причина.** `SdkCompiler` шукає постачальника за простором імен класу, а будь-яку помилку пошуку перехоплює `catch (Throwable) { continue; }`. Так стається, коли клас згенеровано `ufo:sdk:make` для постачальника, якого немає у `vendors`, або простір імен не збігається з `namespace` + назва постачальника.
10
+
11
+
**Обхідний шлях.** Генеруйте лише постачальників з конфігурації (`ufo:sdk:generate`) і не змінюйте `namespace` без перегенерації.
uk/docs/api/sdk/bundle/known_issues/.issues/generate-reports-success.md
new file +11
−0
1
+
### `ufo:sdk:generate` повідомляє про успіх, коли генерація не вдалась
2
+
3
+
:::warning subtitle="Актуальна"
4
+
Зачеплені версії: 4.0.0 (поточна). Перевірено за кодом тегу 4.0.0.
5
+
:::
6
+
7
+
**Симптом.** Команда пише «Generate SDK is complete» і завершується з кодом 0, навіть якщо `ufo:sdk:make` для постачальника впав (сервер недоступний, помилка документації) або назву з `--vendor` не знайдено в конфігурації (тоді не генерується нічого).
8
+
9
+
**Причина.** Код виходу дочірньої команди ігнорується; для невідомого `--vendor` список постачальників порожній.
10
+
11
+
**Обхідний шлях.** У CI запускайте `ufo:sdk:make` для кожного постачальника окремо або перевіряйте вивід на повідомлення про помилки.
uk/docs/api/sdk/bundle/known_issues/.issues/empty-token-header.md
new file +11
−0
1
+
### Порожній токен з оточення все одно надсилається
2
+
3
+
:::warning subtitle="Актуальна"
4
+
Зачеплені версії: 4.0.0 (поточна). Перевірено за кодом тегу 4.0.0.
5
+
:::
6
+
7
+
**Симптом.** Якщо змінна оточення з токеном порожня (як `VENDOR_1_API_TOKEN=` з рецепта), кожен запит містить заголовок токена з порожнім значенням.
8
+
9
+
**Причина.** Компілятор перевіряє `isset()`, а порожній рядок — задане значення.
10
+
11
+
**Обхідний шлях.** Прибирайте `token_key` / `token` з конфігурації постачальника, якщо токен не потрібен.
uk/docs/api/sdk/bundle/known_issues/.issues/namespace-default-mismatch.md
new file +7
−0
1
+
### Різний простір імен за замовчуванням у конфігурації і рецепті
2
+
3
+
:::warning subtitle="Актуальна"
4
+
Зачеплені версії: 4.0.0 (поточна). Нестиковка; перевірено за кодом тегу 4.0.0.
5
+
:::
6
+
7
+
Значення за замовчуванням `namespace` — `App\Sdk`, а файл, який створює рецепт Flex, задає `App\SDK`. На файлових системах з урахуванням регістру це різні каталоги (`src/Sdk` і `src/SDK`). Оберіть одне написання й тримайтеся його.
uk/docs/api/sdk/bundle/known_issues/.issues/undeclared-dependencies.md
new file +7
−0
1
+
### Бандл використовує незадекларовані залежності
2
+
3
+
:::warning subtitle="Актуальна"
4
+
Зачеплені версії: 4.0.0 (поточна). Перевірено за `composer.json` і кодом тегу 4.0.0.
5
+
:::
6
+
7
+
Бандл напряму використовує класи `symfony/maker-bundle` і `ufo-tech/rpc-objects`, але не вказує їх у `require` — вони приходять транзитивно через Client SDK. Підтримка Symfony 8 залежить від того, чи сумісна встановлена версія `symfony/maker-bundle` з Symfony 8.
uk/docs/api/sdk/bundle/known_issues/.issues/readme-outdated.md
new file +11
−0
1
+
### README пакета застарів
2
+
3
+
:::warning subtitle="Актуальна"
4
+
Зачеплені версії: 4.0.0 (поточна). Нестиковка документації, на роботу не впливає.
5
+
:::
6
+
7
+
* Указано «Symfony v.6.*», а 4.0 потребує Symfony ^7.3 | ^8.0.
8
+
* Команда встановлення з помилкою: `json-prc-sdk-bundle` замість `json-rpc-sdk-bundle`; у прикладі `bundles.php` — `,,`.
9
+
* Маска «лише синхронні» — `#Command.run`; правильно `&Command.run`.
10
+
* Приклад згенерованого класу `PingProcedure` і контролера з `Symfony\Component\Routing\Annotation\Route` — зі старих версій; зараз класи називаються `<Назва>SDK`, `ping` не генерується.
11
+
* Не описано асинхронні виклики, `async_secret`, resolver-и транспорту, `sdk_config.yaml`.