docs: rewrite JsonRpcBundle docs, add SDK docs, move them under docs/api
en/docs/api/json-rpc-bundle/change_log/README.md
new file +28
ā0
1
+
# Changelog
2
+
<include>(latest.md)
3
+
_________________
4
+
<include>(10.3.1.md)
5
+
_________________
6
+
<include>(10.2.3.md)
7
+
_________________
8
+
<include>(10.1.0.md)
9
+
_________________
10
+
<include>(10.0.0.md)
11
+
_________________
12
+
<include>(9.2.1.md)
13
+
_________________
14
+
<include>(9.1.5.md)
15
+
_________________
16
+
<include>(8.1.14.md)
17
+
_________________
18
+
<include>(7.6.0.md)
19
+
_________________
20
+
<include>(7.0.0.md)
21
+
_________________
22
+
<include>(6.4.0.md)
23
+
_________________
24
+
<include>(5.2.0.md)
25
+
_________________
26
+
<include>(4.5.2.md)
27
+
28
+
A full description of each release with examples is in the [releases](https://github.com/UFO-Tech/json-rpc-bundle/tree/main/releases) directory of the bundle repository.
en/docs/api/json-rpc-bundle/change_log/latest.md
new file +1
ā0
1
+
<include>(10.4.2.md)
en/docs/api/json-rpc-bundle/change_log/10.4.2.md
new file +17
ā0
1
+
## Version 10.4
2
+
3
+
### Key changes
4
+
5
+
* [Translations for API groups](/docs/api/json-rpc-bundle/documentation): `translations/rpc/<group>.<locale>.yaml`; the group takes precedence over the language.
6
+
* Translations from extensions (`translations.paths`), the public `RpcLocaleNegotiator` service.
7
+
* 10.4.1: `IApiRouteImport`: adapter routes can be registered separately for each API group.
8
+
* 10.4.2: `RpcExecutor` is the single entry point for adapters (REST, MCP); `rpc.post_response` fires for any request source and for each executed batch item.
9
+
10
+
### What to keep in mind
11
+
12
+
* Partial base translation: a missing `description` is taken from the base translation in the `kernel.default_locale` language, not from the attribute / PHPDoc.
13
+
* REST calls now get `rpc.post_response`: cache relations and async/notification listeners start working for them.
14
+
15
+
### Environment changes
16
+
17
+
* Unchanged from 10.3.
en/docs/api/json-rpc-bundle/change_log/10.3.1.md
new file +28
ā0
1
+
## Version 10.3
2
+
3
+
### Key changes
4
+
5
+
* 2.4ā4.2 times more requests per second for regular calls and documentation.
6
+
* [Batch](/docs/api/json-rpc-bundle/functionality/batch) configuration: `enabled`, inline mode, the `process_count` limit of parallel processes.
7
+
* Notifications in a batch per the specification: no response, a batch of only notifications returns `204`.
8
+
* Detached execution of notifications (`notification.process`).
9
+
* [Translation of method names and descriptions](/docs/api/json-rpc-bundle/documentation) by `Accept-Language`, documentation cache with `ETag`.
10
+
* `cache.pool` sets a custom cache pool; the response cache key includes the method implementation and the API version.
11
+
* The token and request body are no longer passed on the command line of child processes.
12
+
13
+
### 10.3.1
14
+
15
+
* XHR requests (`X-Requested-With: XMLHttpRequest`) are executed again.
16
+
* `#[Autowire]` in RPC method arguments works again.
17
+
* `#[RPC\Info(concat: ā¦)]` is applied again; check your clients if `concat` is set.
18
+
* Deprecated methods are marked in OpenRPC again.
19
+
20
+
### What to keep in mind
21
+
22
+
* `batch.process_count` defaults to 2, so large batches in process mode became slower.
23
+
* The application's terminate listeners now run after RPC requests.
24
+
* The constructors of several services changed (relevant only when creating them manually or extending them); `DocSecurityListener` was removed.
25
+
26
+
### Environment changes
27
+
28
+
* `ufo-tech/rpc-objects`: `^3.9.1`.
en/docs/api/json-rpc-bundle/change_log/10.2.3.md
new file +18
ā0
1
+
## Version 10.2
2
+
3
+
### Key changes
4
+
5
+
* [API groups](/docs/api/json-rpc-bundle/functionality/groups): several entry points (public, internal, BFF) with their own methods, versions and documentation; the `#[RPC\APIGroups]` attribute.
6
+
* Per-group token validation via `security.providers` (a validator service or a separate token list).
7
+
* `ApiYamlFileLoader` / `RpcYamlFileLoader` route loaders for adapters.
8
+
* `--api-group` for the console, `apiGroup` for Messenger.
9
+
* A batch sent to a versioned address executes its items in that version.
10
+
11
+
### What to keep in mind
12
+
13
+
* Route names got a group prefix (`general_ufo_rpc_api_server`); the old names remain aliases for `general`.
14
+
* `SimpleTokenValidator` constructor: `(RpcMainConfig $rpcConfig)` -> `(array $tokens = [])`.
15
+
16
+
### Environment changes
17
+
18
+
* `PHP`: `>=8.4`. `ufo-tech/rpc-objects`: `^3.9`.
en/docs/api/json-rpc-bundle/change_log/10.1.0.md
new file +14
ā0
1
+
## Version 10.1
2
+
3
+
### Key changes
4
+
5
+
* Symfony 8 support (`^7.2|^8.0`).
6
+
* [JSON-RPC notifications](/docs/api/json-rpc-bundle/functionality/notifications): a request without `id` gets `204` and is executed after the response.
7
+
* Strict JSON-RPC 2.0 validation: `jsonrpc` ā `"2.0"` and an empty batch are rejected with `-32600`.
8
+
* Unified parameter error format: all problems for each parameter in `error.data`.
9
+
10
+
### Environment changes
11
+
12
+
* `PHP`: `>=8.3` -> `>=8.4`.
13
+
* `Symfony`: `^7.2` -> `^7.2|^8.0`; `symfony/messenger` became an explicit dependency.
14
+
* `ufo-tech/rpc-exceptions`: `^1.3` -> `^2`; `ufo-tech/rpc-objects`: `^3.8`; `ufo-tech/dto-transformer`: `^3.1`.
en/docs/api/json-rpc-bundle/change_log/10.0.0.md
new file +28
ā0
1
+
## Version 10.0.0
2
+
3
+
### Key changes
4
+
5
+
* Added/unified API versioning support in the RPC service.
6
+
* Normalized the API documentation format and refactored the documentation layer.
7
+
* General server refactoring for more stable operation on Symfony 7.x.
8
+
9
+
### ServiceMap and DI
10
+
11
+
* `ServiceMap` building moved into a compiler pass.
12
+
* Added support for `#[Autowire]` services in RPC methods.
13
+
* Non-service classes moved out of the service map, and the ServiceLocator chain simplified.
14
+
15
+
### Parameter converters
16
+
17
+
* Added a Doctrine parameter converter.
18
+
* Improved handling of enum definitions in parameters and schemas.
19
+
20
+
### Environment changes
21
+
22
+
* `PHP`: unchanged (`>=8.3`).
23
+
* `Symfony`: unchanged (core components remain at `^7.2`).
24
+
* `ufo-tech`:
25
+
+ added `ufo-tech/packages:^1`
26
+
+ `ufo-tech/dto-transformer`: `^2` -> `^2.1`
27
+
+ `ufo-tech/rpc-objects`: unchanged (`^3.4`)
28
+
+ `ufo-tech/rpc-exceptions`: unchanged (`^1.3`)
en/docs/api/json-rpc-bundle/change_log/9.2.1.md
new file +15
ā0
1
+
## Version 9.2.1
2
+
3
+
### API documentation
4
+
5
+
* Added the `info` GET parameter to the doc controller to output basic OpenRPC information without the full document.
6
+
7
+
### Async callback
8
+
9
+
* Fixed building of the callback response in the asynchronous flow.
10
+
11
+
### Environment changes
12
+
13
+
* `PHP`: unchanged (`>=8.3`).
14
+
* `Symfony`: unchanged.
15
+
* `ufo-tech`: unchanged.
en/docs/api/json-rpc-bundle/change_log/9.1.5.md
new file +27
ā0
1
+
## Version 9.1.5
2
+
3
+
### Caching
4
+
5
+
* Added invalidation/removal of the relation cache.
6
+
* Added support for `ignore cache` in requests.
7
+
* Fixed `RpcCacheService` and cache warmup scenarios.
8
+
9
+
### Asynchronous processing and configuration
10
+
11
+
* Added support for multiple async transports in the configuration.
12
+
* Updated dependencies and service configuration parts.
13
+
14
+
### Types and DTO
15
+
16
+
* Added support for default values of DTO properties.
17
+
* Fixed handling of union types in return types.
18
+
* Improved compatibility with enums and the generation of assert constraints.
19
+
20
+
### Environment changes
21
+
22
+
* `PHP`: unchanged (`>=8.3`).
23
+
* `Symfony`: unchanged (core components remain at `^7.2`).
24
+
* `ufo-tech`:
25
+
+ `ufo-tech/dto-transformer`: `^1.1` -> `^2`
26
+
+ `ufo-tech/rpc-objects`: `^3.1` -> `^3.4`
27
+
+ `ufo-tech/rpc-exceptions`: unchanged (`^1.3`)
en/docs/api/json-rpc-bundle/change_log/8.1.14.md
new file +28
ā0
1
+
## Version 8.1.14
2
+
3
+
### Documentation and schemas
4
+
5
+
* Added/reworked the JSON Schema builder in the RPC documentation.
6
+
* Improved display of relations (`relations`) in the generated documentation.
7
+
* Fixed generation of enum schemas and markers such as `x-ufo-enum`.
8
+
9
+
### DTO and typing
10
+
11
+
* Fixed DTO reflection and handling of DTO parameters.
12
+
* Improved support for `mixed` and complex types in format generation.
13
+
* Fixed handling of `BackedEnum` and the enum helper logic.
14
+
15
+
### Runtime and async
16
+
17
+
* Fixed the asynchronous request handler.
18
+
* Stabilized the behavior of `RequestCarrier` and special RPC parameters.
19
+
* Resolved issues with terminate events in the handling lifecycle.
20
+
21
+
### Environment changes
22
+
23
+
* `PHP`: unchanged (`>=8.3`).
24
+
* `Symfony`: added `symfony/yaml:^7.2` and `symfony/uid:^7.2` (other Symfony dependencies unchanged from 7.6.0).
25
+
* `ufo-tech`:
26
+
+ `ufo-tech/dto-transformer`: `^1.0` -> `^1.1`
27
+
+ `ufo-tech/rpc-objects`: `^3.0` -> `^3.1`
28
+
+ `ufo-tech/rpc-exceptions`: `>=1.0.3` -> `^1.3`
en/docs/api/json-rpc-bundle/change_log/7.6.0.md
new file +29
ā0
1
+
## Version 7.6.0
2
+
3
+
### General changes
4
+
5
+
* Extended support for the OpenRPC specification (including improvements to documentation generation).
6
+
* Added a Postman collection generator for the RPC API.
7
+
* Extended DTO integration (support for `ufo-tech/dto-transformer`, transformation fixes).
8
+
* Brought compatibility with `ufo-tech/rpc-objects` 3.x.
9
+
10
+
### Events and lifecycle
11
+
12
+
* Added/updated event listeners in the RPC handling pipeline.
13
+
* Improved the asynchronous callback flow.
14
+
* Fixed handling of the parameter resolver and autowiring.
15
+
16
+
### Configuration and stability
17
+
18
+
* Updated dependency requirements and configuration keys.
19
+
* Fixed a number of security, stability and deprecation compatibility issues.
20
+
* Added logging and improved the reliability of the documentation layer.
21
+
22
+
### Environment changes
23
+
24
+
* `PHP`: unchanged (`>=8.3`).
25
+
* `Symfony`: core components updated from `^7.0` to `^7.2` (`framework-bundle`, `serializer`, `console`, `http-kernel`, `validator`, `security-bundle`, `http-client`, `process`), added `symfony/lock:^7.2`.
26
+
* `ufo-tech`:
27
+
+ added `ufo-tech/dto-transformer:^1.0`
28
+
+ `ufo-tech/rpc-objects`: `>=2.3.1` -> `^3.0`
29
+
+ `ufo-tech/rpc-exceptions`: unchanged (`>=1.0.3`)
en/docs/api/json-rpc-bundle/change_log/7.0.0.md
new file +24
ā0
1
+
## Version 7.0.0
2
+
3
+
### General changes
4
+
5
+
* The API documentation format updated to the [OpenRPC](https://spec.open-rpc.org/) standard.
6
+
* The RPC server lifecycle moved to an events-and-subscribers model.
7
+
* Substantial refactoring of the v7 request handling pipeline.
8
+
9
+
### Configuration
10
+
11
+
* The configuration changed significantly and is not fully backward compatible with the 6.x branch.
12
+
* In the `security` block, protection is now configured by action (API calls and documentation separately) rather than by HTTP method.
13
+
* The nested `response` block was removed from the `docs` block; its parameters moved to the `docs` level.
14
+
* Removed outdated parameters (`docs.response.json_schema`).
15
+
* `docs.project_name`
16
+
* `docs.project_description`
17
+
* `docs.project_version`
18
+
19
+
### Environment changes
20
+
21
+
* `PHP`: unchanged from 6.4.0 (`>=8.3`).
22
+
* `Symfony`: unchanged from 6.4.0 (core components at `^7.0`).
23
+
* `ufo-tech/rpc-objects`: `>=2.3.1` -> `>=2.4.0`.
24
+
* `ufo-tech/rpc-exceptions`: unchanged (`>=1.0.3`).
en/docs/api/json-rpc-bundle/change_log/6.4.0.md
new file +21
ā0
1
+
## Version 6.4.0
2
+
3
+
### General changes
4
+
5
+
* Introduced the OpenRPC documentation format and updated the documentation generator.
6
+
* Refactored request handling and the error listener.
7
+
* Added return data descriptions to method documentation.
8
+
* Improved the handling context and the stability of the validation/event flow.
9
+
10
+
### Cache and API behavior
11
+
12
+
* Added caching for GET requests to the documentation API.
13
+
* Fixed a number of bugs in validation and autowiring.
14
+
15
+
### Environment changes
16
+
17
+
* `PHP`: `>=8.1` -> `>=8.3`.
18
+
* `Symfony`: moved from `^6.4` to `^7.0` for core components (`framework-bundle`, `serializer`, `console`, `http-kernel`, `validator`, `security-bundle`, `http-client`, `process`).
19
+
* `ufo-tech`:
20
+
+ `ufo-tech/rpc-objects`: `1.*` -> `>=2.3.1`
21
+
+ `ufo-tech/rpc-exceptions`: `1.*` -> `>=1.0.3`
en/docs/api/json-rpc-bundle/change_log/5.2.0.md
new file +21
ā0
1
+
## Version 5.2.0
2
+
3
+
### General changes
4
+
5
+
* Strengthened the validation layer: added JSON Schema, type hinting and improved parameter validation.
6
+
* Extended method descriptions and RPC metadata in the API documentation.
7
+
* Cleaned up outdated parts (including removing the laminas dependency).
8
+
* Fixed bugs in the error handler and configuration.
9
+
10
+
### Documentation and stability
11
+
12
+
* Added security/contributing files (`SECURITY`, `CONTRIBUTING`, `CODE_OF_CONDUCT`).
13
+
* A series of bug fixes for more stable operation in production scenarios.
14
+
15
+
### Environment changes
16
+
17
+
* `PHP`: unchanged (`>=8.1`).
18
+
* `Symfony`: requirements narrowed from `6.*` to `^6.4`, added `symfony/expression-language:^6.3`.
19
+
* `ufo-tech`:
20
+
+ `ufo-tech/rpc-objects`: unchanged (`1.*`)
21
+
+ `ufo-tech/rpc-exceptions`: unchanged (`1.*`)
en/docs/api/json-rpc-bundle/change_log/4.5.2.md
new file +23
ā0
1
+
## Version 4.5.2
2
+
3
+
### General changes
4
+
5
+
* Global refactoring of the bundle core and the RPC pipeline.
6
+
* Added/stabilized support for batch requests and asynchronous processing.
7
+
* Added CLI handling for RPC (console processing).
8
+
* Exceptions moved into a separate package, and some hard internal dependencies removed.
9
+
* Added/improved the security mode and token validation.
10
+
11
+
### Integrations and tools
12
+
13
+
* Added export for SoapUI integration.
14
+
* Improved RPC server logging.
15
+
* Updated documentation and recipes for integration into Symfony projects.
16
+
17
+
### Environment changes
18
+
19
+
* `PHP`: minimum fixed at `>=8.1`.
20
+
* `Symfony`: moved to the `6.*` branch (`framework-bundle`, `serializer`, `console`, `http-kernel`, `validator`, `http-client`, `process`, `security-bundle`).
21
+
* `ufo-tech`:
22
+
+ `ufo-tech/rpc-objects:1.*`
23
+
+ `ufo-tech/rpc-exceptions:1.*`