See https://dunglas.fr/2019/01/api-platform-2-4/
Full changelog:
- MongoDB: full support
- Elasticsearch: add reading support (including pagination, sort filter and term filter)
- Mercure: automatically push updates to clients using the Mercure protocol
- CQRS support and async message handling using the Symfony Messenger Component
- OpenAPI: add support for OpenAPI v3 in addition to OpenAPI v2
- OpenAPI: support generating documentation using ReDoc
- OpenAPI: basic hypermedia hints using OpenAPI v3 links
- OpenAPI: expose the pagination controls
- Allow to use custom classes for input and output (DTO) with the
input_class
andoutput_class
attributes - Allow to disable the input or the output by setting
input_class
andoutput_class
to false - Guess and automatically set the appropriate Schema.org IRIs for common validation constraints
- Allow to set custom cache HTTP headers using the
cache_headers
attribute - Allow to set the HTTP status code to send to the client through the
status
attribute - Add support for the
Sunset
HTTP header using thesunset
attribute - Set the
Content-Location
andLocation
headers when appropriate for better RFC7231 conformance - Display the matching data provider and data persiter in the debug panel
- GraphQL: improve performance by lazy loading types
- Add the
api_persist
request attribute to enable or disable theWriteListener
- Allow to set a default context in all normalizers
- Permit to use a string instead of an array when there is only one serialization group
- Add support for setting relations using the constructor of the resource classes
- Automatically set a 409 Conflict HTTP status code when an
OptimisticLockException
is thrown - Resolve Dependency Injection Container parameters in the XML and YAML files for the resource class configuration
RequestAttributesExtractor
is not internal anymore and can be used in userland code- Always use the user-defined metadata when set
- OpenAPI: add a description explaining how to use the property filter
- GraphQL: the look'n'feel of GraphiQL now match the API Platform one
- PHPStan level 6 compliance
- Add a
show_webby
configuration option to hide the spider in API docs - Add an easter egg (find it!)