Історія змін

← Історія змін

Ashterix

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

uk/docs/api/rest-bundle/change_log/README.md новий файл +11 −0

1 + # Історія змін
2 +
3 + <include>(1.3.md)
4 + _________________
5 + <include>(latest.md)
6 + _________________
7 + <include>(1.1.md)
8 + _________________
9 + <include>(1.0.md)
10 +
11 + Код і теги релізів — на [GitHub](https://github.com/UFO-Tech/rest-bundle).

uk/docs/api/rest-bundle/change_log/1.3.md новий файл +23 −0

1 + ## Версія 1.3 (ще не випущена)
2 +
3 + Тегу ще немає: зміни підготовлені, але ще не випущені.
4 +
5 + ### Ключові зміни
6 +
7 + * REST-виклики виконуються через `RpcExecutor` JsonRpcBundle: помилки проходять через `rpc.error`, а після успішного виклику на `kernel.terminate` генерується `rpc.post_response` — інвалідація `#[RPC\CacheRelation]` і post-response лістенери працюють і для REST.
8 + * Маршрути реєструються через `IApiRouteImport` (`RestRouteImport`): REST працює поруч з іншими адаптерами, наприклад mcp-bundle.
9 + * [Приведення типів](/docs/api/rest-bundle/requests) значень шляху, query і форми до `int`, `float`, `bool`, `null` за сигнатурою методу; змінні шляху документуються схемою параметра.
10 + * [Переклад документації](/docs/api/rest-bundle/documentation) OpenAPI і Postman за `Accept-Language`.
11 + * [Мапінг помилок](/docs/api/rest-bundle/error_handling): `404` для невідомого RPC-методу, `422` для `ConstraintsImposedException`, HTTP-коди прикладних помилок зберігаються; `RestApplicationException` знову завантажується.
12 +
13 + ### Що врахувати
14 +
15 + * Видалено `Ufo\RestBundle\Routing\RestYamlFileLoader`. Застосункам, що лише імпортують `config/router.yaml`, нічого змінювати не треба; код, що успадковував loader, має реалізувати `IApiRouteImport`.
16 + * Лістенери `rpc.post_response` тепер виконуються і після REST-викликів — перевірте ті, що розраховували лише на RPC.
17 + * Прикладні помилки з HTTP-кодом повертають цей код замість `400`.
18 + * Запити, що падали з `400` через рядкові значення для параметрів `int`, `float`, `bool`, тепер виконуються.
19 + * Якщо ви створюєте класи вручну: `RestEntryPointController::rest()` приймає `RpcExecutor` замість `RpcRequestHandler`, `OpenApiSpecBuilder::buildOperation()` має новий необов'язковий аргумент `?string $description`.
20 +
21 + ### Зміни оточення
22 +
23 + * `ufo-tech/json-rpc-bundle` ^10.4.2.

uk/docs/api/rest-bundle/change_log/latest.md новий файл +1 −0

1 + <include>(1.2.md)

uk/docs/api/rest-bundle/change_log/1.2.md новий файл +18 −0

1 + ## Версія 1.2
2 +
3 + Тег 1.2.0, 2026-10-16.
4 +
5 + ### Ключові зміни
6 +
7 + * Підтримка Symfony 8: `^7.2|^8.0`.
8 + * Колекція Postman будується на `AbstractPostmanAdapter` JsonRpcBundle: назва `REST: <project_name>`, для групи, відмінної від `general`, — із суфіксом ` [група]`.
9 + * `composer test` і `make test` запускають PHPUnit.
10 +
11 + ### Що врахувати
12 +
13 + * Інструменти, що шукають колекцію Postman за назвою, побачать нову назву.
14 +
15 + ### Зміни оточення
16 +
17 + * `ufo-tech/json-rpc-bundle` ^10.2.3.
18 + * Symfony ^7.2 або ^8.0.

uk/docs/api/rest-bundle/change_log/1.1.md новий файл +21 −0

1 + ## Версія 1.1
2 +
3 + Тег 1.1.0, 2026-10-15.
4 +
5 + ### Ключові зміни
6 +
7 + * [Окремий REST-вхід для кожної групи API](/docs/api/rest-bundle/routing) (`defaults: { api_group: ... }`) з власними методами, версіями, документацією й провайдером токенів.
8 + * Назви маршрутів з префіксом групи (`internal_ufo_rest_doc`); старі назви лишаються псевдонімами для `general`.
9 + * `405` замість `404` для неправильного HTTP-методу, `HEAD` для `GET`-маршрутів, `400` для некоректного JSON-тіла.
10 + * Порядок джерел параметрів: змінні шляху, query, поля форми, JSON-тіло.
11 +
12 + ### Що врахувати
13 +
14 + * Генеруйте URL за новими назвами маршрутів або користуйтеся псевдонімами групи `general`.
15 + * Клієнти з некоректним JSON-тілом отримують `400`, з неправильним HTTP-методом — `405`.
16 + * З `x-ufo.environment` сервера OpenAPI прибрано `fromCache`, метод `RestServiceMap::isFromCache()` видалено.
17 +
18 + ### Зміни оточення
19 +
20 + * PHP ^8.4.
21 + * `ufo-tech/json-rpc-bundle` ^10.2.

uk/docs/api/rest-bundle/change_log/1.0.md новий файл +15 −0

1 + ## Версія 1.0
2 +
3 + Перший реліз, 2026-02-17. Тегу немає: версію задано в `composer.json` (1.0.0).
4 +
5 + ### Ключові зміни
6 +
7 + * REST-маршрути з атрибута Symfony `#[Route]` на RPC-процедурах.
8 + * Один вхід, що імпортується з `config/router.yaml` бандла, за замовчуванням `/rest`.
9 + * OpenAPI 3.1 (`GET /rest`) і Postman (`GET /rest/postman`).
10 + * Помилки у форматі RFC 9457.
11 + * Версії API під `/v2/...`.
12 +
13 + ### Зміни оточення
14 +
15 + * PHP ^8.3, Symfony ^7.2, `ufo-tech/json-rpc-bundle` ^10.0, `cebe/php-openapi` ^1.8.