Changelog

← Changelog

Ashterix

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

en/docs/api/rest-bundle/change_log/README.md new file +11 −0

Changelog

<include>(1.3.md)


<include>(latest.md)


<include>(1.1.md)


<include>(1.0.md)

Code and release tags are on GitHub.

en/docs/api/rest-bundle/change_log/1.3.md new file +23 −0

Version 1.3 (not released yet)

Not tagged yet: the changes are prepared but not released.

Key changes

  • REST calls are executed through the JsonRpcBundle RpcExecutor: errors go through rpc.error, and after a successful call rpc.post_response fires on kernel.terminate, so #[RPC\CacheRelation] invalidation and post-response listeners also work for REST.
  • Routes are registered through IApiRouteImport (RestRouteImport): REST works alongside other adapters, for example mcp-bundle.
  • Type casting of path, query and form values to int, float, bool, null according to the method signature; path variables are documented with the parameter's schema.
  • Translated documentation: OpenAPI and Postman by Accept-Language.
  • Error mapping: 404 for an unknown RPC method, 422 for ConstraintsImposedException, HTTP codes of application errors are kept; RestApplicationException loads again.

What to keep in mind

  • Ufo\RestBundle\Routing\RestYamlFileLoader is removed. Applications that only import config/router.yaml need no changes; code that extended the loader must implement IApiRouteImport.
  • rpc.post_response listeners now also run after REST calls: check the ones that expected RPC only.
  • Application errors with an HTTP code return that code instead of 400.
  • Requests that failed with 400 because of string values for int, float, bool parameters now succeed.
  • If you create the classes manually: RestEntryPointController::rest() takes RpcExecutor instead of RpcRequestHandler, OpenApiSpecBuilder::buildOperation() has a new optional argument ?string $description.

Environment changes

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

en/docs/api/rest-bundle/change_log/latest.md new file +1 −0

<include>(1.2.md)

en/docs/api/rest-bundle/change_log/1.2.md new file +18 −0

Version 1.2

Tag 1.2.0, 2026-10-16.

Key changes

  • Symfony 8 support: ^7.2|^8.0.
  • The Postman collection is built on the JsonRpcBundle AbstractPostmanAdapter: named REST: <project_name>, with a [group] suffix for a group other than general.
  • composer test and make test run PHPUnit.

What to keep in mind

  • Tools that look up the Postman collection by name will see the new name.

Environment changes

  • ufo-tech/json-rpc-bundle ^10.2.3.
  • Symfony ^7.2 or ^8.0.

en/docs/api/rest-bundle/change_log/1.1.md new file +21 −0

Version 1.1

Tag 1.1.0, 2026-10-15.

Key changes

  • A separate REST entry point for each API group (defaults: { api_group: ... }) with its own methods, versions, documentation and token provider.
  • Route names with the group prefix (internal_ufo_rest_doc); the old names remain aliases for general.
  • 405 instead of 404 for a wrong HTTP method, HEAD for GET routes, 400 for an invalid JSON body.
  • Parameter source order: path variables, query, form fields, JSON body.

What to keep in mind

  • Generate URLs by the new route names or use the general group aliases.
  • Clients with an invalid JSON body get 400, with a wrong HTTP method 405.
  • fromCache was removed from x-ufo.environment of the OpenAPI server, and the RestServiceMap::isFromCache() method was removed.

Environment changes

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

en/docs/api/rest-bundle/change_log/1.0.md new file +15 −0

Version 1.0

First release, 2026-02-17. No tag: the version is set in composer.json (1.0.0).

Key changes

  • REST routes from the Symfony #[Route] attribute on RPC procedures.
  • One entry point imported from the bundle's config/router.yaml, /rest by default.
  • OpenAPI 3.1 (GET /rest) and Postman (GET /rest/postman).
  • Errors in the RFC 9457 format.
  • API versions under /v2/....

Environment changes

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