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.