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

1 + # Changelog
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 + Code and release tags are on [GitHub](https://github.com/UFO-Tech/rest-bundle).

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

1 + ## Version 1.3 (not released yet)
2 +
3 + Not tagged yet: the changes are prepared but not released.
4 +
5 + ### Key changes
6 +
7 + * 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.
8 + * Routes are registered through `IApiRouteImport` (`RestRouteImport`): REST works alongside other adapters, for example mcp-bundle.
9 + * [Type casting](/docs/api/rest-bundle/requests) 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.
10 + * [Translated documentation](/docs/api/rest-bundle/documentation): OpenAPI and Postman by `Accept-Language`.
11 + * [Error mapping](/docs/api/rest-bundle/error_handling): `404` for an unknown RPC method, `422` for `ConstraintsImposedException`, HTTP codes of application errors are kept; `RestApplicationException` loads again.
12 +
13 + ### What to keep in mind
14 +
15 + * `Ufo\RestBundle\Routing\RestYamlFileLoader` is removed. Applications that only import `config/router.yaml` need no changes; code that extended the loader must implement `IApiRouteImport`.
16 + * `rpc.post_response` listeners now also run after REST calls: check the ones that expected RPC only.
17 + * Application errors with an HTTP code return that code instead of `400`.
18 + * Requests that failed with `400` because of string values for `int`, `float`, `bool` parameters now succeed.
19 + * If you create the classes manually: `RestEntryPointController::rest()` takes `RpcExecutor` instead of `RpcRequestHandler`, `OpenApiSpecBuilder::buildOperation()` has a new optional argument `?string $description`.
20 +
21 + ### Environment changes
22 +
23 + * `ufo-tech/json-rpc-bundle` ^10.4.2.

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

1 + <include>(1.2.md)

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

1 + ## Version 1.2
2 +
3 + Tag 1.2.0, 2026-10-16.
4 +
5 + ### Key changes
6 +
7 + * Symfony 8 support: `^7.2|^8.0`.
8 + * The Postman collection is built on the JsonRpcBundle `AbstractPostmanAdapter`: named `REST: <project_name>`, with a ` [group]` suffix for a group other than `general`.
9 + * `composer test` and `make test` run PHPUnit.
10 +
11 + ### What to keep in mind
12 +
13 + * Tools that look up the Postman collection by name will see the new name.
14 +
15 + ### Environment changes
16 +
17 + * `ufo-tech/json-rpc-bundle` ^10.2.3.
18 + * Symfony ^7.2 or ^8.0.

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

1 + ## Version 1.1
2 +
3 + Tag 1.1.0, 2026-10-15.
4 +
5 + ### Key changes
6 +
7 + * [A separate REST entry point for each API group](/docs/api/rest-bundle/routing) (`defaults: { api_group: ... }`) with its own methods, versions, documentation and token provider.
8 + * Route names with the group prefix (`internal_ufo_rest_doc`); the old names remain aliases for `general`.
9 + * `405` instead of `404` for a wrong HTTP method, `HEAD` for `GET` routes, `400` for an invalid JSON body.
10 + * Parameter source order: path variables, query, form fields, JSON body.
11 +
12 + ### What to keep in mind
13 +
14 + * Generate URLs by the new route names or use the `general` group aliases.
15 + * Clients with an invalid JSON body get `400`, with a wrong HTTP method `405`.
16 + * `fromCache` was removed from `x-ufo.environment` of the OpenAPI server, and the `RestServiceMap::isFromCache()` method was removed.
17 +
18 + ### Environment changes
19 +
20 + * PHP ^8.4.
21 + * `ufo-tech/json-rpc-bundle` ^10.2.

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

1 + ## Version 1.0
2 +
3 + First release, 2026-02-17. No tag: the version is set in `composer.json` (1.0.0).
4 +
5 + ### Key changes
6 +
7 + * REST routes from the Symfony `#[Route]` attribute on RPC procedures.
8 + * One entry point imported from the bundle's `config/router.yaml`, `/rest` by default.
9 + * OpenAPI 3.1 (`GET /rest`) and Postman (`GET /rest/postman`).
10 + * Errors in the RFC 9457 format.
11 + * API versions under `/v2/...`.
12 +
13 + ### Environment changes
14 +
15 + * PHP ^8.3, Symfony ^7.2, `ufo-tech/json-rpc-bundle` ^10.0, `cebe/php-openapi` ^1.8.