Releases: api-platform/core
Releases · api-platform/core
v4.3.10
What's Changed
- fix(swagger): fix SwaggerUI CSS override by @vincentchalamon in #8245
- fix(laravel): persist dirty embedded belongsTo relations by @soyuka in #8246
- fix(graphql): dispatch item Query through its own provider by @soyuka in #8237
- fix(laravel): register graphql routes before catch-all entrypoint by @soyuka in #8248
- fix(laravel): detect enum casts in eloquent property metadata factory by @soyuka in #8247
- fix(jsonapi): do not require id in input schema for post operations by @soyuka in #8252
- fix(laravel): honor path_segment_name_generator config for url segments by @soyuka in #8251
- fix(symfony): skip ErrorResourceAttributeLoaderPass on Symfony 6.4 by @soyuka in #8253
- fix(serializer): allow nullable to-many relations to normalize as null by @soyuka in #8254
- fix(state): guard hex2bin against malformed query parameter keys by @soyuka in #8255
- fix(jsonapi): allow opt-in client-generated IDs on POST per spec by @abderrahimghazali in #7930
Full Changelog: v4.3.9...v4.3.10
v4.3.9
What's Changed
- fix(test): capture streamedresponse body in test client response by @soyuka in #8235
- fix(hydra): format datetime fields as iso 8601 in cursor pagination urls by @soyuka in #8241
- fix(doctrine): extract alias from sql function in orderby parts by @soyuka in #8240
- fix(serializer): bump api-platform/serializer to ^4.3.8 and cover Hal in CI by @soyuka in #8242
- fix(graphql): nested resources without graphqloperations propagate fields by @soyuka in #8236
- fix(graphql): return identifier-only node on circular reference by @soyuka in #8239
Full Changelog: v4.3.8...v4.3.9
v4.3.8
What's Changed
- ErrorProvider: fix typo in _api_operation_nme by @Maxcastel in #7637
- ci: bump actions/setup-node to v6 for Node 24 runtime by @soyuka in #8212
- fix(tests): symfony 8.1 compat by @soyuka in #8210
- fix(graphiql): migrate to v5 via esm.sh CDN by @soyuka in #8209
- fix(jsonapi): keep flat custom params with flat page (#8216) by @soyuka in #8217
- test: backport Behat removal from main to 4.3 by @soyuka in #8221
- fix(symfony): guard null ExpressionLanguage in ResourceAccessChecker::usesObjectVariable() by @soyuka in #8219
- fix(metadata): apply YAML/XML attributes to virtual (method-backed) properties by @soyuka in #8220
- fix(openapi): emit Draft 4 boolean exclusive bounds for spec 3.0.0 by @soyuka in #8222
- fix(symfony): filter nested constraint groups in Sequentially/Compound by @soyuka in #8223
- fix(laravel): wire jsonapi.use_iri_as_id in ApiPlatformProvider by @soyuka in #8224
- fix(state): omit Content-Type when response has no body by @soyuka in #8218
- fix(openapi): emit valid 3.0 schemas when downgrading from 3.1 by @soyuka in #8225
- fix(test): default content-type in ApiTestCase matches configured formats by @soyuka in #8227
- ci(commitlint): check PR commits against PR base ref by @soyuka in #8234
- fix(symfony): reject duplicate operation names instead of silently dropping operations by @soyuka in #8232
- fix(openapi): coerce metadata parameters in user-supplied openapi operation by @soyuka in #8229
- fix(symfony): keep error serialization mapping when enable_attributes is disabled by @soyuka in #8231
- fix(openapi): disambiguate definition names when input and output share a shortname by @soyuka in #8230
- fix(doctrine): resolve parent link toProperty during PUT create by @soyuka in #8233
Full Changelog: v4.3.7...v4.3.8
v4.2.25
What's Changed
- ErrorProvider: fix typo in _api_operation_nme by @Maxcastel in #7637
Full Changelog: v4.2.24...v4.2.25
v4.1.29
What's Changed
- ErrorProvider: fix typo in _api_operation_nme by @Maxcastel in #7637
Full Changelog: v4.1.28...v4.1.29
v4.3.7
What's Changed
- fix(openapi): include jsonapi collection schema by @Will-thom in #8190
- fix(symfony): isolate api_platform.property_info tags by @soyuka in #8206
New Contributors
- @Will-thom made their first contribution in #8190
Full Changelog: v4.3.6...v4.3.7
v4.3.6
What's Changed
- fix(serializer): translate PropertyAccess type mismatches to NotNormalizableValueException by @soyuka in #7967
- fix(symfony): include value-object transformers in JSON-LD streamer locator by @soyuka in #7968
- fix(graphql): accept FilterInterface instance in QueryParameter by @soyuka in #7972
- ci: pin composer to 2.9.8 to avoid GitHub Actions token disclosure by @soyuka in #7974
- fix(laravel): set application/ld+json content-type on /contexts/{shortName} by @soyuka in #7973
- fix(symfony,laravel): IriConverter local cache key collision between item and collection ops by @soyuka in #7975
- fix(symfony): register property_info fallback when not provided by Symfony by @guillaumedelre in #7969
- test: cover Assert\Choice exposure in OpenAPI schema by @soyuka in #8191
- fix(metadata): negotiate wildcard Accept with parameters by @soyuka in #8192
- fix(jsonapi): merge flat page/itemsPerPage params with bracket filter by @soyuka in #8193
- fix(metadata): :property dedup drops repeated parameters by @soyuka in #8196
- fix(state): convert BackedEnum denormalization errors into validation violations by @soyuka in #8195
Full Changelog: v4.3.5...v4.3.6
v4.3.5
What's Changed
- chore: allow doctrine/collections ^v3 by @soyuka in #7947
- fix(laravel): fall back to resource class when object is null in ResourceAccessChecker by @soyuka in #7948
- fix(symfony): api_platform_iris loader misses item Gets and api_genid by @soyuka in #7946
- fix(mcp): pass title to Tool constructor by @soyuka in #7950
- fix(laravel): expose ReDoc/Scalar in docs footer by @abderrahimghazali in #7942
- chore(tests): reorganize Functional/ by feature scope by @soyuka in #7958
- fix(symfony): Symfony 8.1 compatibility by @soyuka in #7955
- test: phpunit exception not restored by @soyuka in #7959
- [Mcp] Properly handle oneOf and anyOf in generated mcp schema so that JSONLD output is actually valid by @jbtronics in #7962
- fix(laravel): inject missing dependencies into HydraSchemaFactory by @soyuka in #7963
- test(hal): correct context array key type in normalizer test docblock by @soyuka in #7964
- fix(hydra): emit hydra:next and hydra:previous on empty cursor-paginated collections by @guillaumedelre in #7961
New Contributors
- @jbtronics made their first contribution in #7962
- @guillaumedelre made their first contribution in #7961
Full Changelog: v4.3.4...v4.3.5
v4.3.4
What's Changed
- refactor(metadata): use logic from ResourceClassInfoTrait by @Maxcastel in #7928
- fix:
ResourceClassInfoTrait::isResourceClass()is always true by @Maxcastel in #7924 - fix(state): use exception message for user-facing violation when available by @vincentchalamon in #7894
- fix(openapi): generate both singular and array parameter variants for filters by @soyuka in #7906
- refactor(symfony): remove static state from EntrypointAction by @KevinMartinsDev in #7919
- refactor(jsonld): use already declared $isResourceClass variable by @Maxcastel in #7901
- fix(validator): handle nested groups and group sequences by @VincentLanglet in #7914
- fix(metadata): nested property filters fail to generate JOINs when relation target entity is not directly declared as ApiResource by @Maxcastel in #7926
- fix(state): preserve Type message when expectedTypes is set by @soyuka in #7935
- fix(symfony): ensure ErrorListener is fully stateless to prevent stat… by @KevinMartinsDev in #7921
- fix(laravel): skip relation metadata for abstract Eloquent models by @cay89 in #7933
- fix(symfony): api_platform_iris route loader for graphql-only setups by @soyuka in #7934
- fix(symfony): security regression when ResourceAccessChecker is decorated (#7896) by @giosh94mhz in #7897
- fix(doctrine): IriFilter ignores custom ApiProperty identifier on ODM by @soyuka in #7937
- fix(jsonapi): use parent-resolved class in denormalizeRelation by @elfin-sbreuers in #7938
New Contributors
- @KevinMartinsDev made their first contribution in #7919
Full Changelog: v4.3.3...v4.3.4