Skip to content

Releases: api-platform/core

Version 2.6.1

24 Jan 22:30
v2.6.1
4b293b0
Compare
Choose a tag to compare
  • Fix defaults when using attributes (#3978)

Version 2.6.0

22 Jan 12:31
v2.6.0
5cb0508
Compare
Choose a tag to compare
  • Cache: adds a max_header_length configuration (#2865)
  • Cache: support stale-while-revalidate and stale-if-error cache control headers (#3439)
  • Config: Add an option to set global default values (#3151)
  • DTO: Add ApiPlatform\Core\DataTransformer\DataTransformerInitializerInterface to pre-hydrate inputs (#3701)
  • DTO: Improve Input/Output support (#3231)
  • Data Persisters: Add previous_data to the context passed to persisters when available (#3752)
  • Data Persister: Add a ResumableDataPersisterInterface that allows to call multiple persisters (#3912)
  • Debug: Display API Platform's version in the debug bar (#3235)
  • Docs: Make asset_package configurable (#3764)
  • Doctrine: Allow searching on multiple values on every strategies (#3786)
  • Elasticsearch: The Paginator class constructor now receives the denormalization context to support denormalizing documents using serialization groups. This change may cause potential BC breaks for existing applications as denormalization was previously done without serialization groups.
  • GraphQL: BC New syntax for the filters' arguments to preserve the order: order: [{foo: 'asc'}, {bar: 'desc'}] (#3468)
  • GraphQL: BC operation is now operationName to follow the standard (#3568)
  • GraphQL: BC paginationType is now pagination_type (#3614)
  • GraphQL: Add page-based pagination (#3175, #3517)
  • GraphQL: Allow formatting GraphQL errors based on exceptions (#3063)
  • GraphQL: Errors thrown from the GraphQL library can now be handled (#3632, #3643)
  • GraphQL: Possibility to add a custom description for queries, mutations and subscriptions (#3477, #3514)
  • GraphQL: Subscription support with Mercure (#3321)
  • GraphQL: Support for field name conversion (serialized name) (#3455, #3516)
  • Hydra: Sort entries in the API entrypoint (#3091)
  • Identifiers: Add Symfony Uid support (#3715)
  • IriConverter: BC Fix double encoding in IRIs - may cause breaking change as some characters no longer encoded in output (#3552)
  • JSON-LD: Add an iri_only attribute to simplify documents structure (useful when using Vulcain) (#3275)
  • Exception: Response error codes can be specified via the ApiPlatform\Core\Exception\ErrorCodeSerializableInterface (#2922)
  • Mercure: Add a normalization_context option in mercure attribute (#3772)
  • Messenger: Add a context stamp containing contextual data (#3157)
  • Metadata: Deprecate InheritedPropertyMetadataFactory (#3273)
  • Metadata: Improve and simplify identifiers management (#3825)
  • Metadata: Support the Symfony Serializer's @Ignore annotation (#3820)
  • Metadata: Support using annotations as PHP 8 attributes (#3869, #3868, #3851)
  • Metadata: Throw an error when no identifier is defined (#3871)
  • Metadata: Use id as default identifier if none provided (#3874)
  • MongoDB: Mercure support (#3290)
  • MongoDB: Possibility to add execute options (aggregate command fields) for a resource, like allowDiskUse (#3144)
  • OpenAPI: Add default values of PHP properties to the documentation (#2386)
  • OpenAPI: BC Replace all characters other than [a-zA-Z0-9\.\-_] to . in definition names to be compliant with OpenAPI 3.0 (#3669)
  • OpenAPI: Refactor OpenAPI v3 support, OpenAPI v2 (aka Swagger) is deprecated (#3407)
  • Order: Support default order for a specific custom operation (#3784)
  • PATCH: Support patching deep objects (#3847)
  • Router: UrlGenerator strategy configuration via url_generation_strategy (#3198)
  • Routing: Add stateless ApiResource attribute (#3436)
  • Security: Add support for access control rule on attributes (#3503)
  • Subresources: resourceClass can now be defined as a container parameter in XML and YAML definitions
  • Symfony: improved 5.x support with fewer deprecations (#3589)
  • Symfony: Allow using ItemNormalizer without Symfony SecurityBundle (#3801)
  • Symfony: Lazy load all commands (#3798)
  • Tests: adds a method to retrieve the CookieJar in the test Client getCookieJar
  • Tests: Fix the registration of the test.api_platform.client service when the FrameworkBundle bundle is registered after the ApiPlatformBundle bundle (#3928)
  • Validator: Add the violation code to the violation properties (#3857)
  • Validator: Allow customizing the validation error status code (#3808)
  • Validator: Autoconfiguration of validation groups generator via ApiPlatform\Core\Validator\ValidationGroupsGeneratorInterface
  • Validator: Deprecate using a validation groups generator service not implementing ApiPlatform\Core\Bridge\Symfony\Validator\ValidationGroupsGeneratorInterface (#3346)
  • Validator: Property validation through OpenAPI (#33329)
  • Validator: Query filters and parameters are validated (#1723)
  • ExceptionInterface now extends \Throwable (#3217)

Version 2.5.10

22 Jan 10:38
v2.5.10
908dafa
Compare
Choose a tag to compare
  • Hydra: only display hydra:next when the item total is strictly greater than the number of items per page (#3967)

Version 2.6.0 beta 1

17 Dec 18:14
v2.6.0-beta.1
75deb1a
Compare
Choose a tag to compare
Version 2.6.0 beta 1 Pre-release
Pre-release

The first beta of API Platform 2.6!

Version 2.5.9

17 Dec 18:12
v2.5.9
4f05477
Compare
Choose a tag to compare
  • Fix a warning when preloading the AbstractPaginator class (#3827)
  • OpenAPI: prevent additionalProp1 from showing in example values (#3888)
  • Varnish: fix a bug when passing an empty list of tags to the purger (#3827)
  • JSON Schema: mark hydra:mapping properties as nullable (#3877)

Version 2.6.0 alpha 1

02 Dec 22:15
v2.6.0-alpha.1
f53bb64
Compare
Choose a tag to compare
Version 2.6.0 alpha 1 Pre-release
Pre-release

Read the announcement!

  • Cache: adds a max_header_length configuration (#2865)
  • Cache: support stale-while-revalidate and stale-if-error cache control headers (#3439)
  • Config: Add an option to set global default values (#3151)
  • DTO: Add ApiPlatform\Core\DataTransformer\DataTransformerInitializerInterface to pre-hydrate inputs (#3701)
  • DTO: Improve Input/Output support (#3231)
  • Data Persisters: Add previous_data to the context passed to persisters when available (#3752)
  • Debug: Display API Platform's version in the debug bar (#3235)
  • Docs: Make asset_package configurable (#3764)
  • Doctrine: Allow searching on multiple values on every strategies (#3786)
  • Elasticsearch: The Paginator class constructor now receives the denormalization context to support denormalizing documents using serialization groups. This change may cause potential BC breaks for existing applications as denormalization was previously done without serialization groups.
  • GraphQL: BC New syntax for the filters' arguments to preserve the order: order: [{foo: 'asc'}, {bar: 'desc'}] (#3468)
  • GraphQL: BC operation is now operationName to follow the standard (#3568)
  • GraphQL: BC paginationType is now pagination_type (#3614)
  • GraphQL: Add page-based pagination (#3175, #3517)
  • GraphQL: Allow formatting GraphQL errors based on exceptions (#3063)
  • GraphQL: Errors thrown from the GraphQL library can now be handled (#3632, #3643)
  • GraphQL: Possibility to add a custom description for queries, mutations and subscriptions (#3477, #3514)
  • GraphQL: Subscription support with Mercure (#3321)
  • GraphQL: Support for field name conversion (serialized name) (#3455, #3516)
  • Hydra: Sort entries in the API entrypoint (#3091)
  • Identifiers: Add Symfony Uid support (#3715)
  • IriConverter: BC Fix double encoding in IRIs - may cause breaking change as some characters no longer encoded in output (#3552)
  • JSON-LD: Add an iri_only attribute to simplify documents structure (useful when using Vulcain) (#3275)
  • Exception: Response error codes can be specified via the ApiPlatform\Core\Exception\ErrorCodeSerializableInterface (#2922)
  • Mercure: Add a normalization_context option in mercure attribute (#3772)
  • Messenger: Add a context stamp containing contextual data (#3157)
  • Messenger: Add a new messenger=persist to option to call the standard data persister before publishing the message (#3617)
  • Metadata: Deprecate InheritedPropertyMetadataFactory (#3273)
  • Metadata: Improve and simplify identifiers management (#3825)
  • Metadata: Support the Symfony Serializer's @Ignore annotation (#3820)
  • Metadata: Support using annotations as PHP 8 attributes (#3869, #3868, #3851)
  • Metadata: Throw an error when no identifier is defined (#3871)
  • Metadata: Use id as default identifier if none provided (#3874)
  • MongoDB: Mercure support (#3290)
  • MongoDB: Possibility to add execute options (aggregate command fields) for a resource, like allowDiskUse (#3144)
  • OpenAPI: Add default values of PHP properties to the documentation (#2386)
  • OpenAPI: BC Replace all characters other than [a-zA-Z0-9\.\-_] to . in definition names to be compliant with OpenAPI 3.0 (#3669)
  • OpenAPI: Refactor OpenAPI v3 support, OpenAPI v2 (aka Swagger) is deprecated (#3407)
  • Order: Support default order for a specific custom operation (#3784)
  • PATCH: Support patching deep objects (#3847)
  • Router: UrlGenerator strategy configuration via url_generation_strategy (#3198)
  • Routing: Add stateless ApiResource attribute (#3436)
  • Security: Add support for access control rule on attributes (#3503)
  • Subresources: resourceClass can now be defined as a container parameter in XML and YAML definitions
  • Symfony: improved 5.x support with fewer deprecations (#3589)
  • Symfony: Allow using ItemNormalizer without Symfony SecurityBundle (#3801)
  • Symfony: Lazy load all commands (#3798)
  • Tests: adds a method to retrieve the CookieJar in the test Client getCookieJar
  • Validator: Add the violation code to the violation properties (#3857)
  • Validator: Allow customizing the validation error status code (#3808)
  • Validator: Autoconfiguration of validation groups generator via ApiPlatform\Core\Validator\ValidationGroupsGeneratorInterface
  • Validator: Deprecate using a validation groups generator service not implementing ApiPlatform\Core\Bridge\Symfony\Validator\ValidationGroupsGeneratorInterface (#3346)
  • Validator: Property validation through OpenAPI (#33329)
  • Validator:Query filters and parameters are validated (#1723)
  • ExceptionInterface now extends \Throwable (#3217)

Version 2.5.8

02 Dec 20:45
v2.5.8
d4d6377
Compare
Choose a tag to compare
  • PHP 8 support (#3791, #3745, #3855)
  • Metadata: Fix merging null values from annotations (#3711)
  • JSON-LD: Add missing @type from collection using output DTOs (#3699)
  • Cache: Improve PurgeHttpCacheListener performances (#3743)
  • Cache: Fix VarnishPurger max header length (#3843)
  • Identifiers: Do not denormalize the same identifier twice (#3762)
  • OpenAPI: Lazy load SwaggerCommand (#3802)
  • OpenAPI: Use Output class name instead of the Resource short name when available (#3741)
  • Router: Replace baseurl only once (#3776)
  • Mercure: Publisher bug fixes (#3790, #3739)
  • Serializer: Catch NotNormalizableValueException to UnexpectedValueEception with inputs (#3697)
  • Doctrine: ODM escape search terms in RegexFilter
  • Tests: Improve JSON Schema assertions (#3807, #3803, #3804, #3806, #3817, #3829, #3830)
  • Tests: Allow passing extra options in ApiTestClient (#3486)
  • Docs: Upgrade Swagger UI to version 3.37.2 (#3867)
  • Docs: Upgrade ReDoc to version 2.0.0-rc.45 (#3867)
  • Docs: Upgrade GraphiQL to version 15.3.0 (#3867)
  • Docs: Upgrade GraphQL Playground to version 1.7.26 (#3867)

For compatibility reasons with Symfony 5.2 and PHP 8, we do not test anymore the integration with these legacy packages:

  • FOSUserBundle
  • NelmioApiDoc 2

Version 2.5.7

28 Aug 16:29
v2.5.7
37b5edf
Compare
Choose a tag to compare
  • Compatibility with Symfony 5.1 (#3589 and #3688)
  • Resource Cache-Control HTTP header can be private (#3543)
  • Doctrine: Fix missing ManagerRegistry class (#3684)
  • Doctrine: Order filter doesn't throw anymore with numeric key (#3673 and #3687)
  • Doctrine: Fix ODM check change tracking deferred (#3629)
  • Doctrine: Allow 2inflector version 2.0 (#3607)
  • OpenAPI: Allow subresources context to be added (#3685)
  • OpenAPI: Fix pagination documentation on subresources (#3678)
  • Subresource: Fix query when using a custom identifier (#3529 and #3671)
  • GraphQL: Fix relation types without Doctrine (#3591)
  • GraphQL: Fix DTO relations (#3594)
  • GraphQL: Compatibility with graphql-php version 14 (#3621 and #3654)
  • Docs: Upgrade Swagger UI to version 3.32.5 (#3693)
  • Docs: Upgrade ReDoc to version 2.0.0-rc.40 (#3693)
  • Docs: Upgrade GraphiQL to version 1.0.3 (#3693)
  • Docs: Upgrade GraphQL Playground to version 1.7.23 (#3693)

Version 2.5.6

28 May 15:19
v2.5.6
d84282f
Compare
Choose a tag to compare
  • Add support for Mercure 0.10 (#3584)
  • Allow objects without properties (#3544)
  • Fix Ramsey uuid denormalization (#3473)
  • Revert #3331 as it breaks backwards compatibility
  • Handle deprecations from Doctrine Inflector (#3564)
  • JSON Schema: Missing JSON-LD context from Data Transformers (#3479)
  • GraphQL: Resource with no operations should be available through relations (#3532)

Version 2.5.5

21 Apr 14:10
v2.5.5
fa9d8ca
Compare
Choose a tag to compare
  • Filter: Improve the RangeFilter query in case the values are equals using the between operator #3488
  • Pagination: Fix bug with large values #3451
  • Doctrine: use the correct type within setParameter of the SearchFilter #3331
  • Allow \Traversable resources #3463
  • Hydra: hydra:writable => hydra:writeable #3481
  • Hydra: Show hydra:next only when it's available #3457
  • Swagger UI: Missing default context argument #3443
  • Swagger UI: Fix API docs path in swagger ui #3475
  • OpenAPI: Export with unescaped slashes #3368
  • OpenAPI: OAuth flows fix #3333
  • JSON Schema: Fix metadata options #3425
  • JSON Schema: Allow decoration #3417
  • JSON Schema: Add DateInterval type #3351
  • JSON Schema: Correct schema generation for many types #3402
  • Validation: Use API Platform's ValidationException instead of Symfony's #3414
  • Validation: Fix a bug preventing to serialize validator's payload #3375
  • Subresources: Improve queries when there's only one level #3396
  • HTTP: Location header is only set on POST with a 201 or between 300 and 400 #3497
  • GraphQL: Do not allow empty cursor values on before or after #3360
  • Bump versions of Swagger UI, GraphiQL and GraphQL Playground #3510