Releases: api-platform/core
Releases · api-platform/core
v2.7.4
What's Changed
- fix(metadata): Allow input/output configuration values to be bool in yaml config by @pl-github in #5186
- fix: use legacy iri converter for legacy resources by @soyuka in #5172
New Contributors
- @pl-github made their first contribution in #5186
Full Changelog: v2.7.3...v2.7.4
v3.0.3
What's Changed
- fix: upate yaml extractor test file coding standard by @MarvinCourcier in #5068
- [GraphQL] Add a clearer error message when TwigBundle is disable but graphql clients aren't by @ArnoudThibaut in #5064
- fix(metadata): add class key in payload argument resolver by @MarvinCourcier in #5067
- fix: remove ApiSubresource attribute with upgrade command by @davy-beauzil in #5049
- [Doctrine] SearchFilter - Use abitrary index instead of value by @Korbeil in #5079
- fix: uri template should respect rfc 6570 by @soyuka in #5080
- fix: remove @internal annotation for Operations by @norival in #5089
- fix(metadata): define a name on a single operation by @soyuka in #5090
- fix(metadata): deprecate when user decorates in legacy mode by @soyuka in #5091
- fix(graphql): always allow to query nested resources by @soyuka in #5112
New Contributors
- @MarvinCourcier made their first contribution in #5068
- @norival made their first contribution in #5089
Full Changelog: v3.0.2...v3.0.3
v2.7.3
What's Changed
- fix: upate yaml extractor test file coding standard by @MarvinCourcier in #5068
- fix(metadata): add class key in payload argument resolver by @MarvinCourcier in #5067
- fix: remove ApiSubresource attribute with upgrade command by @davy-beauzil in #5049
- fix: remove @internal annotation for Operations by @norival in #5089
- fix(metadata): define a name on a single operation by @soyuka in #5090
- fix(metadata): deprecate when user decorates in legacy mode by @soyuka in #5091
New Contributors
- @MarvinCourcier made their first contribution in #5068
- @norival made their first contribution in #5089
Full Changelog: v2.7.2...v2.7.3
Version 3.0.0
- Identifiers: Allow plain identifiers is removed, use a custom normalizer if needed (#4811)
- Symfony: deprecated configuration was removed (#4811)
- DataTransformers: concept got removed, input and output classes are handled as anonymous resources (#4805)
- Doctrine: some interfaces have changed (extensions and filters),
string $operationName
got removed in favor ofApiPlatform\Metadata\Operation $operation
. (#4779) - Doctrine:
ContextAware
interfaces were merged with their child interfaces you can safely remove them (#4779) - Metadata: the
Core
namespace got removed (#4805) - Mercure: deprecation removed (#4805)
- ExpressionLanguage: deprecated class
ApiPlatform\Symfony\Security\ExpressionLanguage
has been removed in favor ofSymfony\Component\Security\Core\Authorization\ExpressionLanguage
. - JsonLd: correct the
api_jsonld_context
route format (#4844) - Metadata: remove metadata_backward_compatibility_layer option (#4843)
- OpenApi: fixed required fields (in and name) within
ApiPlatform\OpenApi\Model\Parameter
BC - Metadata: CRUD on subresource with experimental write support (#4932)
- Symfony: 6.1 compatibility and remove 4.4 and 5.4 support (#4851)
- Symfony: removed the $exceptionOnNoToken parameter in
ResourceAccessChecker::__construct()
(#4905) - Symfony: use conventional service names for Doctrine state providers and processors (#4859)
- Symfony: adjust mapping paths to the SF best practices for Bundles BC
Resources/config/api_resources
toconfig/api_resources
(#4853) - Symfony:
src/ApiResource/
is the recommended place for API models (#4874) - Cache: remove guzzle from the Varnish purger (#4872)
- JsonLd: correct the
api_jsonld_context
route format (#4844)
See also the changelog of API Platform 2.7 which contains the non-breaking changes
Version 2.7.0
Changelog
- Swagger UI: Add
usePkceWithAuthorizationCodeGrant
to Swagger UI initOAuth (#4649) - BC:
mapping.paths
in configuration should override bundles configuration (#4465) - GraphQL: Add the ability to use different pagination types for the queries of a resource (#4453)
- Security: BC Fix
ApiProperty
security
attribute expression being passed a class string for theobject
variable on updates/creates - null is now passed instead if the object is not available (#4184) - Security:
ApiProperty
now supports asecurity_post_denormalize
attribute, which provides access to theobject
variable for the object being updated/created andprevious_object
for the object before it was updated (#4184) - Maker: Add
make:data-provider
andmake :data-persister
commands to generate a data provider / persister (#3850) - JSON Schema: Add support for generating property schema with numeric constraint restrictions (#4225)
- JSON Schema: Add support for generating property schema with Collection restriction (#4182)
- JSON Schema: Add support for generating property schema format for Url and Hostname (#4185)
- JSON Schema: Add support for generating property schema with Count restriction (#4186)
- JSON Schema: Manage Compound constraint when generating property metadata (#4180)
- Validator: Add an option to disable query parameter validation (#4165)
- JSON Schema: Add support for generating property schema with Choice restriction (#4162)
- JSON Schema: Add support for generating property schema with Range restriction (#4158)
- JSON Schema: Add support for generating property schema with Unique restriction (#4159)
- BC: Change
api_platform.listener.request.add_format
priority from 7 to 28 to execute it before firewall (priority 8) (#3599) - BC: Use
@final
annotation in ORM filters (#4109) - Allow defining
exception_to_status
per operation (#3519) - Doctrine: Better exception to find which resource is linked to an exception (#3965)
- Doctrine: Allow mixed type value for date filter (notice if invalid) (#3870)
- Doctrine: Add
nulls_always_first
andnulls_always_last
tonulls_comparison
in order filter (#4103) - Doctrine: Add a global
order_nulls_comparison
configuration (#3117) - MongoDB:
date_immutable
support (#3940) - DataProvider: Add
TraversablePaginator
(#3783) - JSON:API: Support inclusion of resources from path (#3288)
- Swagger UI: Add
swagger_ui_extra_configuration
to Swagger / OpenAPI configuration (#3731) - Allow controller argument with a name different from
$data
thanks to an argument resolver (#3263) - GraphQL: Support
ApiProperty
security (#4143) - GraphQL: BC Fix security on association collection properties. The collection resource
item_query
security is no longer used.ApiProperty
security can now be used to secure collection (or any other) properties. (#4143) - Deprecate
allow_plain_identifiers
option (#4167) - Exception: Add the ability to customize multiple status codes based on the validation exception (#4017)
- ApiLoader: Support
_format
resolving (#4292) - Metadata: new namespace
ApiPlatform\Metadata
instead ofApiPlatform\Core\Metadata
, for exampleApiPlatform\Metadata\ApiResource
(#4351) - Metadata: deprecation of
ApiPlatform\Core\Annotation
(#4351) - Metadata:
ApiPlatform\Core\Metadata\Resource\Factory\ResourceMetadataFactoryInterface
is deprecated in favor ofApiPlatform\Metadata\Resource\Factory\ResourceMetadataCollectionFactoryInterface
(#4351) - Metadata: item and collection prefixes for operations are deprecated, as well as the
ApiPlatform\Core\Api\OperationType
class (#4351) - Graphql:
ApiPlatform\Metadata\GraphQl
follow the same metadata conventions (a Subscription operation is available and isn't hidden behind an update Mutation anymore), interfaces got simplified (being @experimental) (#4351) - IriConverter: new interface for
ApiPlatform\Bridge\Symfony\Routing\IriConverter
that adds an operationName, same forApiPlatform\Api\IdentifiersExtractor
(#4351) - DataProvider: new
ApiPlatform\State\ProviderInterface
that replaces DataProviders (#4351) - DataPersister: new
ApiPlatform\State\ProcessorInterface
that replaces DataPersisters (#4351) - A new configuration is available to keep old services (IriConverter, IdentifiersExtractor and OpenApiFactory)
metadata_backward_compatibility_layer
(defaults to false) (#4351) - Add support for
security_post_validation
attribute - Mark the GraphQL subsystem as stable (#4500)
- feat(test): add
Client::loginUser()
(#4588) - feat(http_cache): use symfony/http-client instead of guzzlehttp/guzzle,
ApiPlatform\Core\HttpCache\PurgerInterface
is deprecated in favor ofApiPlatform\HttpCache\PurgerInterface
, new purger that uses PURGE (#4695) - Implements Skolem IRIs instead of blank nodes, can be disabled using
iri: false
(#4731) - IRI Converter: new interface declaring
getIriFromResource
andgetResourceFromIri
(#4734) - Backward compatibility: fix dependency injection (#4744)
- Metadata: allow extra keys within defaults (#4743)
- Backward compatibility: fix upgrade script for subresources (#4747)
- Backward compatibility: fix dependency injection (#4748)
- GraphQl: output creates its own type in TypeBuilder (#4766)
- Metadata: clear missing metadata cache pools (#4770)
- Metadata: property override when value is set (#4767)
- Metadata: add read and write to extractor (#4760)
- JsonSchema: factory backward compatibility layer (#4758)
- Metadata: defaults properly overrides metadata (#4759)
- Metadata: Add missing processor and provider to extractor (#4754)
- Metadata: defaults deprecation (#4772)
- Json-Ld: property metadata types and iris (#4769)
- Symfony: write listener uri variables converter (#4774)
- Metadata: extra properties operation inheritance (#4773)
- Processor: adds
previous_data
to the context (#4776) - JsonApi: Use skolem IRIs (#4796)
- Metadata: Merge defaults instead of overriding (#4796)
- ApiTestCase: Fix JSON Schema assertions (#4796)
- Input/Output: backport serializer changes to make input/output work as resource classes without data transformers (#4804)
- GraphQl: the SerializerContextBuilder interface changes to reflect operation instead of the operation name BC (#4804)
- Metadata: reduce coalescing operator call (#4810)
- Serializer: ignore no-operation on SerializeListener (#4828)
- Schema: schema generation with default operation (#4818)
- Symfony: deprecate the
$exceptionOnNoToken
parameter inResourceAccessChecker::__construct()
(#4900) - chore: remove @experimental phpdoc (#4933)
- Metadata: do not set id when identifier is
false
(#4880) - Metadata: automatic GET operation when none is declared (#4881)
- Metadata: exception to status on operations (#4861)
- Serializer: adds the JSON_INVALID_UTF8_IGNORE flag to JsonEncode (#4741)
- Symfony: autoconfigure legacy Doctrine extensions (#4909)
- Elasticsearch: skip metadata without ES nodes (#4913)
v3.0.0-rc.2
What's Changed
- Remove core namespace leftovers by @dannyvw in #4827
- Remove metadata_backward_compatibility_layer option by @vincentchalamon in #4843
- Fix some todo by @vincentchalamon in #4847
Full Changelog: v3.0.0-rc.1...v3.0.0-rc.2
v2.7.0-rc.2
What's Changed
- Fix api_jsonld_context route declaration by @vincentchalamon in #4844
- Migrate ApiFilter to new format by @nawel-les-tilleuls in #4845
- Add Maker command for state processor and provider by @nikophil in #4423
- Migrate ApiProperty to new format by @vincentchalamon in #4842
New Contributors
- @nawel-les-tilleuls made their first contribution in #4845
- @nikophil made their first contribution in #4423
Full Changelog: v2.7.0-rc.1...v2.7.0-rc.2
v3.0.0-rc.1
chore: update changelog
v2.7.0-rc.1
chore: update CHANGELOG
Version 2.6.8
- fix: serializing embedded non resource objects
- chore(openapi): upgrade Swagger UI to version 4.1.3
- chore(openapi): upgrade ReDoc to version 2.0.0-rc.59
- chore(graphql): upgrade GraphiQL to version 1.5.16