Skip to content

Commit

Permalink
Fix/issue 3960 (#4018)
Browse files Browse the repository at this point in the history
* fix: load swagger even when conf is false

* fix: change aliases and definitions for swagger disabled in tests

* fix: manage necessary services loading

* fix typo

Co-authored-by: Jade Bellereau <jade@les-tilleuls.coop>
  • Loading branch information
soyuka and GrimpEreau committed Feb 3, 2021
1 parent d65b136 commit 78cfbbf
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 9 deletions.
Expand Up @@ -375,13 +375,18 @@ private function registerSwaggerConfiguration(ContainerBuilder $container, array
{
$container->setParameter('api_platform.swagger.versions', $config['swagger']['versions']);

if (empty($config['swagger']['versions'])) {
return;
if (!$config['enable_swagger'] && $config['enable_swagger_ui']) {
throw new RuntimeException('You can not enable the Swagger UI without enabling Swagger, fix this by enabling swagger via the configuration "enable_swagger: true".');
}

$loader->load('json_schema.xml');
$loader->load('swagger.xml');

if (!$config['enable_swagger']) {
return;
}

$loader->load('openapi.xml');
$loader->load('swagger.xml');
$loader->load('swagger-ui.xml');

if (!$config['enable_swagger_ui'] && !$config['enable_re_doc']) {
Expand Down
2 changes: 1 addition & 1 deletion src/Bridge/Symfony/Bundle/Resources/config/api.xml
Expand Up @@ -242,7 +242,7 @@
<argument>%api_platform.version%</argument>
<argument>null</argument>
<argument on-invalid="null">%api_platform.swagger.versions%</argument>
<argument type="service" id="api_platform.openapi.factory"></argument>
<argument type="service" id="api_platform.openapi.factory" on-invalid="null"></argument>
</service>

<service id="api_platform.action.exception" class="ApiPlatform\Core\Action\ExceptionAction" public="true">
Expand Down
Expand Up @@ -1260,6 +1260,9 @@ private function getBaseContainerBuilderProphecy(array $doctrineIntegrationsToLo
'api_platform.http_cache.listener.response.configure',
'api_platform.http_cache.purger.varnish_client',
'api_platform.http_cache.purger.varnish',
'api_platform.json_schema.json_schema_generate_command',
'api_platform.json_schema.type_factory',
'api_platform.json_schema.schema_factory',
'api_platform.listener.view.validate',
'api_platform.listener.view.validate_query_parameters',
'api_platform.mercure.listener.response.add_link_header',
Expand Down Expand Up @@ -1325,9 +1328,6 @@ private function getBaseContainerBuilderProphecy(array $doctrineIntegrationsToLo
$definitions[] = 'api_platform.swagger.command.swagger_command';
$definitions[] = 'api_platform.swagger.normalizer.api_gateway';
$definitions[] = 'api_platform.swagger.normalizer.documentation';
$definitions[] = 'api_platform.json_schema.type_factory';
$definitions[] = 'api_platform.json_schema.schema_factory';
$definitions[] = 'api_platform.json_schema.json_schema_generate_command';
$definitions[] = 'api_platform.openapi.options';
$definitions[] = 'api_platform.openapi.normalizer';
$definitions[] = 'api_platform.openapi.normalizer.api_gateway';
Expand Down Expand Up @@ -1383,6 +1383,8 @@ private function getBaseContainerBuilderProphecy(array $doctrineIntegrationsToLo
NumericFilter::class => 'api_platform.doctrine.orm.numeric_filter',
ExistsFilter::class => 'api_platform.doctrine.orm.exists_filter',
GraphQlSerializerContextBuilderInterface::class => 'api_platform.graphql.serializer.context_builder',
TypeFactoryInterface::class => 'api_platform.json_schema.type_factory',
SchemaFactoryInterface::class => 'api_platform.json_schema.schema_factory',
];

if (\in_array('odm', $doctrineIntegrationsToLoad, true)) {
Expand All @@ -1403,8 +1405,6 @@ private function getBaseContainerBuilderProphecy(array $doctrineIntegrationsToLo
// Only when swagger is enabled
if ($hasSwagger) {
$aliases += [
TypeFactoryInterface::class => 'api_platform.json_schema.type_factory',
SchemaFactoryInterface::class => 'api_platform.json_schema.schema_factory',
Options::class => 'api_platform.openapi.options',
OpenApiNormalizer::class => 'api_platform.openapi.normalizer',
OpenApiFactoryInterface::class => 'api_platform.openapi.factory',
Expand Down

0 comments on commit 78cfbbf

Please sign in to comment.