Skip to content

Commit a98332d

Browse files
authored
fix(metadata): name convert parameter property (#6766)
1 parent ab88353 commit a98332d

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

src/Metadata/Resource/Factory/ParameterResourceMetadataCollectionFactory.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
use ApiPlatform\OpenApi\Model\Parameter as OpenApiParameter;
2626
use ApiPlatform\Serializer\Filter\FilterInterface as SerializerFilterInterface;
2727
use Psr\Container\ContainerInterface;
28+
use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
2829
use Symfony\Component\Validator\Constraints\Choice;
2930
use Symfony\Component\Validator\Constraints\Count;
3031
use Symfony\Component\Validator\Constraints\DivisibleBy;
@@ -47,7 +48,7 @@
4748
*/
4849
final class ParameterResourceMetadataCollectionFactory implements ResourceMetadataCollectionFactoryInterface
4950
{
50-
public function __construct(private readonly ?ResourceMetadataCollectionFactoryInterface $decorated = null, private readonly ?ContainerInterface $filterLocator = null)
51+
public function __construct(private readonly ?ResourceMetadataCollectionFactoryInterface $decorated = null, private readonly ?ContainerInterface $filterLocator = null, private readonly ?NameConverterInterface $nameConverter = null)
5152
{
5253
}
5354

@@ -136,6 +137,10 @@ private function setDefaults(string $key, Parameter $parameter, string $resource
136137
$parameter = $this->addSchemaValidation($parameter, $schema, $parameter->getRequired() ?? $description['required'] ?? false, $parameter->getOpenApi() ?: null);
137138
}
138139

140+
if ($this->nameConverter && $property = $parameter->getProperty()) {
141+
$parameter = $parameter->withProperty($this->nameConverter->normalize($property));
142+
}
143+
139144
return $parameter;
140145
}
141146

src/Symfony/Bundle/Resources/config/metadata/resource.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@
8484

8585
<service id="api_platform.metadata.resource.metadata_collection_factory.parameter" class="ApiPlatform\Metadata\Resource\Factory\ParameterResourceMetadataCollectionFactory" decorates="api_platform.metadata.resource.metadata_collection_factory" public="false" decoration-priority="1000">
8686
<argument type="service" id="api_platform.metadata.resource.metadata_collection_factory.parameter.inner" />
87-
<argument type="service" id="api_platform.filter_locator" />
87+
<argument type="service" id="api_platform.filter_locator" on-invalid="ignore" />
88+
<argument type="service" id="api_platform.name_converter" on-invalid="ignore" />
8889
</service>
8990

9091
<service id="api_platform.metadata.resource.metadata_collection_factory.cached" class="ApiPlatform\Metadata\Resource\Factory\CachedResourceMetadataCollectionFactory" decorates="api_platform.metadata.resource.metadata_collection_factory" decoration-priority="-10" public="false">

0 commit comments

Comments
 (0)