Skip to content

Commit f48feb3

Browse files
committed
feat(symfony): Add error classes options to OpenAPI config
1 parent 202c60f commit f48feb3

File tree

4 files changed

+9
-0
lines changed

4 files changed

+9
-0
lines changed

src/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -875,6 +875,9 @@ private function registerOpenApiConfiguration(ContainerBuilder $container, array
875875

876876
$container->setParameter('api_platform.openapi.tags', $tags);
877877

878+
$container->setParameter('api_platform.openapi.errorResourceClass', $config['openapi']['error_resource_class'] ?? null);
879+
$container->setParameter('api_platform.openapi.validationErrorResourceClass', $config['openapi']['validation_error_resource_class'] ?? null);
880+
878881
$loader->load('json_schema.xml');
879882
}
880883

src/Symfony/Bundle/DependencyInjection/Configuration.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -535,6 +535,8 @@ private function addOpenApiSection(ArrayNodeDefinition $rootNode): void
535535
->info('To pass extra configuration to Swagger UI, like docExpansion or filter.')
536536
->end()
537537
->booleanNode('overrideResponses')->defaultTrue()->info('Whether API Platform adds automatic responses to the OpenAPI documentation.')
538+
->scalarNode('error_resource_class')->defaultNull()->info('The class used to represent errors in the OpenAPI documentation.')
539+
->scalarNode('validation_error_resource_class')->defaultNull()->info('The class used to represent validation errors in the OpenAPI documentation.')
538540
->end()
539541
->end()
540542
->end();

src/Symfony/Bundle/Resources/config/openapi.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@
6262
<argument>%api_platform.swagger.persist_authorization%</argument>
6363
<argument>%api_platform.swagger.http_auth%</argument>
6464
<argument>%api_platform.openapi.tags%</argument>
65+
<argument>%api_platform.openapi.errorResourceClass%</argument>
66+
<argument>%api_platform.openapi.validationErrorResourceClass%</argument>
6567
<argument>%api_platform.openapi.license.identifier%</argument>
6668
</service>
6769
<service id="ApiPlatform\OpenApi\Options" alias="api_platform.openapi.options" />

tests/Symfony/Bundle/DependencyInjection/ConfigurationTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,8 @@ private function runDefaultConfigTests(array $doctrineIntegrationsToLoad = ['orm
221221
'swagger_ui_extra_configuration' => [],
222222
'overrideResponses' => true,
223223
'tags' => [],
224+
'error_resource_class' => null,
225+
'validation_error_resource_class' => null,
224226
],
225227
'maker' => [
226228
'enabled' => true,

0 commit comments

Comments
 (0)