Skip to content

Releases: api-platform/core

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

v4.2.12

09 Jan 10:56
61d272a

Choose a tag to compare

Happy new year 2026 🎆!

What's Changed

  • Add AsCommand attribute to replace deprecated getDefaultName() by @eneko-koraliving in #7633
  • Allow operation element to be optional in XML by @yceruto in #7632
  • DefinitionNameFactory: Add tests to cover groups with colon in JsonSchema by @Maxcastel in #7630
  • fix(openapi): respect schema type for non-collection parameter documentation by @soyuka in #7634
  • fix(serializer): wrap exception when collecting object errors by @soyuka in #7644
  • fix(doctrine): fix partial fetch when relation switches context by @jderusse in #7645
  • fix(doctrine): fix partial fetch with same entity included multiple time with different fields by @jderusse in #7647
  • fix(doctrine): escape values with % or _ in search filter by @VincentLanglet in #7653
  • fix(doctrine): Handling of parameter description by @VincentLanglet in #7656
  • fix(openapi): properly document list parameters by @soyuka in #7658
  • Enhance exception message for non-object relation by @rvanlaak in #7646
  • fix(laravel): deprecation in definition name factory by @soyuka in #7661
  • fix(test): change string to int for status in JsonApiTest::testError by @Maxcastel in #7631
  • test(symfony): ensure pagination_maximum_items_per_page defaults correctly when config defaults key is absent by @Maxcastel in #7609

New Contributors

Full Changelog: v4.2.11...v4.2.12

v4.2.11

19 Dec 14:16
34f3f1c

Choose a tag to compare

What's Changed

  • fix(symfony): enable to set default values for stale-while-revalidate and stale-if-error cache headers via config file by @ttskch in #7606
  • fix(symfony): check if required package is installed before configuri… by @aaa2000 in #7607
  • fix(state): delete with stateOptions and object mapper by @soyuka in #7615
  • chore: upgrade justinrainbow/json-schema by @aaa2000 in #7619
  • fix(openapi): enable ReDoc when Swagger UI is disabled by @4lxndr in #7617
  • fix(jsonld): allow mapping collection output with itemUriTemplate by @soyuka in #7620
  • fix(laravel): allow custom error handler for non-api operations by @soyuka in #7622
  • Fix #7599 Allow overide of CsvEncoder::AS_COLLECTION_KEY in context by @Stav88 in #7613
  • fix(jsonapi): handle missing attributes in ErrorNormalizer by @daFish in #7569

New Contributors

Full Changelog: v4.2.10...v4.2.11

v4.2.10

11 Dec 16:38
b09d4a0

Choose a tag to compare

What's Changed

  • fix: Add support for the Deprecation header by @aaa2000 in #7582
  • Disable Swagger UI and ReDoc when Swagger is off by @jderusse in #7586
  • fix(metadata): implement MappedObjectPaginator for fixing pagination on mapped data by @Spomky in #7591
  • fix(metadata): property placeholder on multiple parameters by @soyuka in #7598
  • fix(metadata): use operation output class for mapping instead of operation class by @Spomky in #7601
  • fix(laravel): belongs-to-many relations dont have a get-foreign-key-name method by @mariantrifu in #7589
  • fix(symfony): do not redeclare object_mapper by @soyuka in #7602
  • ci: lowest tests object_mapper framework bundle by @soyuka in #7604
  • fix(symfony): do not load docs routes if docs disabled by @alexndlm in #7448
  • Fix IRI generation with link parameter resources by @Geekimo in #7520

New Contributors

Full Changelog: v4.2.9...v4.2.10

v4.2.9

05 Dec 14:55
e64b93e

Choose a tag to compare

What's Changed

Warning

Inside a filter you may receive a scalar value where you expected an array especially when using a custom filter extending the AbstractFilter, with a :property placeholder. Read more at #7547

v4.1.28

05 Dec 14:55
654f8e6

Choose a tag to compare

Full Changelog: v4.1.27...v4.1.28