Changelog
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 throughrpc.error, and after a successful callrpc.post_responsefires onkernel.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,nullaccording to the method signature; path variables are documented with the parameter's schema. - Translated documentation: OpenAPI and Postman by
Accept-Language. - Error mapping:
404for an unknown RPC method,422forConstraintsImposedException, HTTP codes of application errors are kept;RestApplicationExceptionloads again.
What to keep in mind
Ufo\RestBundle\Routing\RestYamlFileLoaderis removed. Applications that only importconfig/router.yamlneed no changes; code that extended the loader must implementIApiRouteImport.rpc.post_responselisteners 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
400because of string values forint,float,boolparameters now succeed. - If you create the classes manually:
RestEntryPointController::rest()takesRpcExecutorinstead ofRpcRequestHandler,OpenApiSpecBuilder::buildOperation()has a new optional argument?string $description.
Environment changes
ufo-tech/json-rpc-bundle^10.4.2.
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: namedREST: <project_name>, with a[group]suffix for a group other thangeneral. composer testandmake testrun 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.
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 forgeneral. 405instead of404for a wrong HTTP method,HEADforGETroutes,400for 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
generalgroup aliases. - Clients with an invalid JSON body get
400, with a wrong HTTP method405. fromCachewas removed fromx-ufo.environmentof the OpenAPI server, and theRestServiceMap::isFromCache()method was removed.
Environment changes
- PHP ^8.4.
ufo-tech/json-rpc-bundle^10.2.
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,/restby 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.
Code and release tags are on GitHub.