Історія змін

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

Ashterix

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

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

Історія змін

<include>(1.3.md)


<include>(latest.md)


<include>(1.1.md)


<include>(1.0.md)

Код і теги релізів — на GitHub.

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

Версія 1.3 (ще не випущена)

Тегу ще немає: зміни підготовлені, але ще не випущені.

Ключові зміни

  • REST-виклики виконуються через RpcExecutor JsonRpcBundle: помилки проходять через rpc.error, а після успішного виклику на kernel.terminate генерується rpc.post_response — інвалідація #[RPC\CacheRelation] і post-response лістенери працюють і для REST.
  • Маршрути реєструються через IApiRouteImport (RestRouteImport): REST працює поруч з іншими адаптерами, наприклад mcp-bundle.
  • Приведення типів значень шляху, query і форми до int, float, bool, null за сигнатурою методу; змінні шляху документуються схемою параметра.
  • Переклад документації OpenAPI і Postman за Accept-Language.
  • Мапінг помилок: 404 для невідомого RPC-методу, 422 для ConstraintsImposedException, HTTP-коди прикладних помилок зберігаються; RestApplicationException знову завантажується.

Що врахувати

  • Видалено Ufo\RestBundle\Routing\RestYamlFileLoader. Застосункам, що лише імпортують config/router.yaml, нічого змінювати не треба; код, що успадковував loader, має реалізувати IApiRouteImport.
  • Лістенери rpc.post_response тепер виконуються і після REST-викликів — перевірте ті, що розраховували лише на RPC.
  • Прикладні помилки з HTTP-кодом повертають цей код замість 400.
  • Запити, що падали з 400 через рядкові значення для параметрів int, float, bool, тепер виконуються.
  • Якщо ви створюєте класи вручну: RestEntryPointController::rest() приймає RpcExecutor замість RpcRequestHandler, OpenApiSpecBuilder::buildOperation() має новий необов'язковий аргумент ?string $description.

Зміни оточення

  • ufo-tech/json-rpc-bundle ^10.4.2.

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

<include>(1.2.md)

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

Версія 1.2

Тег 1.2.0, 2026-10-16.

Ключові зміни

  • Підтримка Symfony 8: ^7.2|^8.0.
  • Колекція Postman будується на AbstractPostmanAdapter JsonRpcBundle: назва REST: <project_name>, для групи, відмінної від general, — із суфіксом [група].
  • composer test і make test запускають PHPUnit.

Що врахувати

  • Інструменти, що шукають колекцію Postman за назвою, побачать нову назву.

Зміни оточення

  • ufo-tech/json-rpc-bundle ^10.2.3.
  • Symfony ^7.2 або ^8.0.

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

Версія 1.1

Тег 1.1.0, 2026-10-15.

Ключові зміни

  • Окремий REST-вхід для кожної групи API (defaults: { api_group: ... }) з власними методами, версіями, документацією й провайдером токенів.
  • Назви маршрутів з префіксом групи (internal_ufo_rest_doc); старі назви лишаються псевдонімами для general.
  • 405 замість 404 для неправильного HTTP-методу, HEAD для GET-маршрутів, 400 для некоректного JSON-тіла.
  • Порядок джерел параметрів: змінні шляху, query, поля форми, JSON-тіло.

Що врахувати

  • Генеруйте URL за новими назвами маршрутів або користуйтеся псевдонімами групи general.
  • Клієнти з некоректним JSON-тілом отримують 400, з неправильним HTTP-методом — 405.
  • З x-ufo.environment сервера OpenAPI прибрано fromCache, метод RestServiceMap::isFromCache() видалено.

Зміни оточення

  • PHP ^8.4.
  • ufo-tech/json-rpc-bundle ^10.2.

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

Версія 1.0

Перший реліз, 2026-02-17. Тегу немає: версію задано в composer.json (1.0.0).

Ключові зміни

  • REST-маршрути з атрибута Symfony #[Route] на RPC-процедурах.
  • Один вхід, що імпортується з config/router.yaml бандла, за замовчуванням /rest.
  • OpenAPI 3.1 (GET /rest) і Postman (GET /rest/postman).
  • Помилки у форматі RFC 9457.
  • Версії API під /v2/....

Зміни оточення

  • PHP ^8.3, Symfony ^7.2, ufo-tech/json-rpc-bundle ^10.0, cebe/php-openapi ^1.8.