Skip to content

Releases: api-platform/core

v4.3.0-beta.1

03 Mar 10:58
59adb86

Choose a tag to compare

What's Changed

  • fix(serializer): apply API Platform name converter to input/output DTOs by @soyuka in #7779
  • fix(JsonSchema): avoid schema name collision when an operation name is already used by another class by @wuchen90 in #7778
  • fix(metadata): sort parameters by priority after pattern expansion by @soyuka in #7788
  • fix(serializer): prevent api_platform_output context from leaking to nested non-resource objects by @soyuka in #7787
  • fix(validator): missing required properties when using GroupSequence by @VincentLanglet in #7784
  • ci: php 8.5 (#7585) by @soyuka in #7786
  • fix(symfony): allow toggling GraphQL Playground to ensure BC by @bkosun in #7793
  • feat(serializer): option to preserve key in CollectionNormalizer by @VincentLanglet in #7721
  • fix(validator): handle nested groups and group sequences by @VincentLanglet in #7791
  • Fix Hydra example type - use @type prefix per JSON-LD spec by @Copilot in #7768
  • feat(laravel): split render logic from error handler by @bonroyage in #7790
  • fix(serializer): report all missing constructor arguments in instantiateObject by @soyuka in #7805
  • Feature support entity identfiers to become JSON:API semantics compliant by @elfin-sbreuers in #7702
  • chore: mcp-bundle:^0.5 by @soyuka in #7809
  • fix(openapi): allow Operations to override global options in getPaginationParameters by @jamesisaac in #7807
  • feat(doctrine): ComparisonFilter decorator for range filtering by @soyuka in #7760
  • fix(laravel): exclude .blade.php files from recursive class scan by @Jellyfrog in #7813
  • feat(doctrine): ne (not equal) operator for ComparisonFilter by @soyuka in #7814
  • feat(elasticsearch): OpenSearch support by @hotfix31 in #7811
  • feat(doctrine): ODM SortFilter and nested property support for parameter-based filters by @soyuka in #7780
  • fix(laravel): do not exclude custom primary keys matching HasMany foreign keys by @Jellyfrog in #7810
  • fix(symfony): make enable_docs a master switch for disabling documentation by @soyuka in #7806
  • fix(jsonapi): wrong variable name during merge by @soyuka in #7816
  • feat: defaults parameters by @Maxcastel in #7758

New Contributors

Full Changelog: v4.3.0-alpha.2...v4.3.0-beta.1

v4.2.19

27 Feb 16:05
8994a15

Choose a tag to compare

Bug fixes

  • 04c30b7ee fix(jsonapi): prevent double unwrapping of data.attributes with input DTOs
  • c6236f313 fix(serializer): report all missing constructor arguments in instantiateObject

v4.2.18

27 Feb 10:42
5f7feec

Choose a tag to compare

What's Changed

  • fix(metadata): sort parameters by priority after pattern expansion by @soyuka in #7788
  • fix(serializer): prevent api_platform_output context from leaking to nested non-resource objects by @soyuka in #7787
  • fix(validator): missing required properties when using GroupSequence by @VincentLanglet in #7784
  • ci: php 8.5 (#7585) by @soyuka in #7786
  • fix(symfony): allow toggling GraphQL Playground to ensure BC by @bkosun in #7793
  • fix(validator): handle nested groups and group sequences by @VincentLanglet in #7791
  • Fix Hydra example type - use @type prefix per JSON-LD spec by @Copilot in #7768

Full Changelog: v4.2.17...v4.2.18

v4.3.0-alpha.2

20 Feb 21:02
06f66f9

Choose a tag to compare

What's Changed

  • fix(jsonld): restore item_uri_template @type resolution after 4.2 merge by @soyuka in #7764
  • Various fixes by @soyuka in #7765
  • fix(elasticsearch): mono-repo v9 support by @GeLoLabs in #7766
  • fix: remove extra empty lines insertion in SymfonyServiceClassConstantFixer by @Maxcastel in #7761
  • fix(state): handle partial pagination with object mapper by @soyuka in #7769
  • test(openapi): add openapi test for normalization with attributes by @Maxcastel in #7772
  • fix(hydra): hide search key when there is parameter without filter by @VincentLanglet in #7773
  • fix(hydra): unique class @id with subClassOf for semantic types by @soyuka in #7771
  • feat(doctrine): add nested relation support to IriFilter and UuidFilter by @soyuka in #7759
  • fix(symfony): publish mercure updates for all resources of an entity by @soyuka in #7774
  • Use values from ProblemExceptionInterface by @bonroyage in #7776
  • fix(symfony): use AsCommand description parameter for console commands by @soyuka in #7763
  • feat(serializer): global defaults.normalization_context.gen_id configuration option by @olinox14 in #7775
  • fix(doctrine): enforce api-platform/serializer dependency by @soyuka in #7781

⚠️ Notes

Hydra class @id now always uses #ShortName (#7771): Hydra documentation classes now consistently use #ShortName as their @id instead of schema.org type URIs (e.g. schema:Product). This properly resolves class identifier collisions when multiple resources shared the same semantic type, which previously caused api-doc-parser conflation. Semantic types configured via types are now exposed through rdfs:subClassOf. Clients should expect class @id and property range changes in the Hydra documentation if resources had custom types configured.

New Contributors

Full Changelog: v4.3.0-alpha.1...v4.3.0-alpha.2

v4.2.17

20 Feb 20:41
f46bfb1

Choose a tag to compare

What's Changed

  • fix: remove extra empty lines insertion in SymfonyServiceClassConstantFixer by @Maxcastel in #7761
  • fix(state): handle partial pagination with object mapper by @soyuka in #7769
  • fix(hydra): hide search key when there is parameter without filter by @VincentLanglet in #7773
  • fix(symfony): use AsCommand description parameter for console commands by @soyuka in #7763
  • fix(serializer): apply API Platform name converter to input/output DTOs by @soyuka in #7779
  • fix(JsonSchema): avoid schema name collision when an operation name is already used by another class by @wuchen90 in #7778

Full Changelog: v4.2.16...v4.2.17

v4.3.0-alpha.1

13 Feb 17:52
771ad58

Choose a tag to compare

v4.3.0-alpha.1 Pre-release
Pre-release

Features

  • feat(mcp): introduce api-platform/mcp component (#7703)
  • feat: mcp bundle tool integration (#7595)
  • feat: add support of collection to MCP (#7724)
  • feat(laravel): mcp support (#7709)
  • feat(laravel): object mapper (#7704)
  • feat: support relations on filters (#7711)
  • feat(jsonschema): support for normalization/denormalization with attributes (#7629)
  • feat(symfony): isGranted before provider (#7500)
  • feat(doctrine): uuid filter (#7628)
  • feat(doctrine): Add caseSensitive option to PartialSearchFilter (#7675)
  • feat(doctrine): remove PUT & PATCH for readonly entity (#7453)
  • feat(validator): uuid/ulid parameter validation (#7649)
  • feat(json-schema): handle union object types in iterable properties (#7726)
  • feat: allow both uppercase and lowercase order direction in OrderFilter schema (#7741)
  • feat(elasticsearch): add SSL options for Elasticsearch configuration (#4059)
  • feat(metadata): expose default attribute on parameters (#7551)
  • feat(state): add headers to comply with LDP specification (#6917)
  • feat(symfony): allow symfony makers namespace configuration (#7497)
  • feat: enable to skip autoconfiguration with new SkipAutoconfigure attribute (#7467)
  • feat(metadata): cache operation metadata factory (#7516)

Bug fixes

  • fix(validator): validate entities after ObjectMapper transformation (#7731)
  • fix(jsonld)!: item uri template type (#7518)
  • fix(doctrine): throw exception if property is null for the doctrine filters (#7681)

Breaking changes

  • When using output with itemUriTemplate on a collection operation, the JSON-LD @type will now use the resource class name instead of the output DTO class name for semantic consistency with itemUriTemplate behavior.

Full Changelog: v4.2.16...v4.3.0-alpha.1

v4.2.16

13 Feb 17:37
edc7a37

Choose a tag to compare

What's Changed

  • fix(laravel): support numeric float types in eloquent metadata factory by @soyuka in #7730
  • fix(doctrine): skip uninitialized properties in handleLazyObjectRelations by @marius-swfy in #7738
  • fix(hydra): remove duplicate @context in docs.jsonld (fixes #7222) by @soyuka in #7740
  • feat(doctrine): allow both uppercase and lowercase order direction in OrderFilter schema by @soyuka in #7742
  • feat: support filters with stateOptions by @alexislefebvre in #7739
  • refactor: use imported Group instead of FQCN by @Maxcastel in #7754
  • refactor: use imported DataProvider instead of FQCN by @Maxcastel in #7753
  • fix(serializer): prevent context leakage with service-based entity resolution by @soyuka in #7756

New Contributors

Full Changelog: v4.2.15...v4.2.16

v4.2.15

30 Jan 14:14
f0c9a2a

Choose a tag to compare

What's Changed

  • add phpunit.baseline.xml to .gitattributes by @gharlan in #7692
  • fix: if the relationship is null the jsonapi output must present null by @elfin-sbreuers in #7686
  • Fix issues with extending {XML,Yaml} -> {XML,Yaml} resources by @senghe in #5956
  • fix: Change payload type from array to free-form object in schema by @DjordyKoert in #7694
  • ci: hide progress from PHP-CS-Fixer by @alexislefebvre in #7696
  • fix(doctrine): post with mapped relation by @soyuka in #7698
  • fix(symfony): prevent symfony name converter service pollution by @soyuka in #7691
  • Bump github actions by @VincentLanglet in #7700
  • chore(symfony): custom rule to transform class-string to use instructions by @soyuka in #7708
  • test: cover exception if property is null for filters by @Maxcastel in #7716
  • fix Hydra JsonSchema SchemaFactory by @amenophis in #7718
  • chore: split agents to reduce context usage by @soyuka in #7719
  • fix(symfony): declare api_platform.normalizer.object fixes #7705 by @soyuka in #7717
  • fix(laravel): properly transform invokable service to route action by @soyuka in #7720

New Contributors

Full Changelog: v4.2.14...v4.2.15

v4.2.14

23 Jan 15:43
26a8ac4

Choose a tag to compare

What's Changed

Full Changelog: v4.2.13...v4.2.14

v4.2.13

23 Jan 15:44
e64d706

Choose a tag to compare

What's Changed

  • Add phpdoc for array of some interface by @VincentLanglet in #7583
  • fix(openapi): phpdoc operation response as array<int|string, OpenApi\Response> by @petski in #7660
  • fix(symfony): pass missing arguments to ConcernsResourceMetadataCollectionFactory by @ttskch in #7676
  • test(validator): improve ValidationException::violations schema by @VincentLanglet in #7673
  • fix(metadata): fix losing content on error reponse with no output by @VincentLanglet in #7674
  • chore(symfony): bump api platform components by @soyuka in #7677

New Contributors

Full Changelog: v4.2.12...v4.2.13