From daadb0b567c637d737f58fd25da0b4db2321560d Mon Sep 17 00:00:00 2001 From: Djordy Koert Date: Wed, 7 Feb 2024 14:21:48 +0100 Subject: [PATCH] fix-2209: Multiple @OA\MediaType() warning with MapRequestPayload (#2213) * refactor: TestKernel configureRoutes method * improve testing to a per controller test * uncomment commented code * style fix * more refactoring for new ControllerTest * fix-2209: do not generate content if already exists * style fix * check if MapRequestPayload exists * Add MapQueryStringController * add test showcasing CleanUnusedComponents Processor * style fix * cleaner fix --- Processor/MapRequestPayloadProcessor.php | 6 + .../CleanUnusedComponentsProcessor.yaml | 4 + .../ConfigurableContainerFactory.php | 38 + .../Functional/Controller/Controller2209.php | 25 + .../Controller/MapQueryStringController.php | 91 + Tests/Functional/ControllerTest.php | 119 + Tests/Functional/Fixtures/Controller2209.json | 89 + .../MapQueryStringCleanupComponents.json | 3087 +++++++++++++++ .../Fixtures/MapQueryStringController.json | 3310 +++++++++++++++++ Tests/Functional/NelmioKernel.php | 77 + Tests/Functional/TestKernel.php | 26 +- 11 files changed, 6853 insertions(+), 19 deletions(-) create mode 100644 Tests/Functional/Configs/CleanUnusedComponentsProcessor.yaml create mode 100644 Tests/Functional/ConfigurableContainerFactory.php create mode 100644 Tests/Functional/Controller/Controller2209.php create mode 100644 Tests/Functional/Controller/MapQueryStringController.php create mode 100644 Tests/Functional/ControllerTest.php create mode 100644 Tests/Functional/Fixtures/Controller2209.json create mode 100644 Tests/Functional/Fixtures/MapQueryStringCleanupComponents.json create mode 100644 Tests/Functional/Fixtures/MapQueryStringController.json create mode 100644 Tests/Functional/NelmioKernel.php diff --git a/Processor/MapRequestPayloadProcessor.php b/Processor/MapRequestPayloadProcessor.php index e4ae9b0c5..03df9b142 100644 --- a/Processor/MapRequestPayloadProcessor.php +++ b/Processor/MapRequestPayloadProcessor.php @@ -8,6 +8,7 @@ use Nelmio\ApiDocBundle\RouteDescriber\RouteArgumentDescriber\SymfonyMapRequestPayloadDescriber; use OpenApi\Analysis; use OpenApi\Annotations as OA; +use OpenApi\Generator; use OpenApi\Processors\ProcessorInterface; use Symfony\Component\HttpKernel\Attribute\MapRequestPayload; use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; @@ -55,7 +56,12 @@ public function __invoke(Analysis $analysis) } foreach ($formats as $format) { + if (!Generator::isDefault($requestBody->content)) { + continue; + } + $contentSchema = $this->getContentSchemaForType($requestBody, $format); + Util::modifyAnnotationValue($contentSchema, 'ref', $modelRef); if ($argumentMetaData->isNullable()) { diff --git a/Tests/Functional/Configs/CleanUnusedComponentsProcessor.yaml b/Tests/Functional/Configs/CleanUnusedComponentsProcessor.yaml new file mode 100644 index 000000000..ff03db6fc --- /dev/null +++ b/Tests/Functional/Configs/CleanUnusedComponentsProcessor.yaml @@ -0,0 +1,4 @@ +services: + OpenApi\Processors\CleanUnusedComponents: + tags: + - { name: 'nelmio_api_doc.swagger.processor', priority: -100 } diff --git a/Tests/Functional/ConfigurableContainerFactory.php b/Tests/Functional/ConfigurableContainerFactory.php new file mode 100644 index 000000000..1b0f19a74 --- /dev/null +++ b/Tests/Functional/ConfigurableContainerFactory.php @@ -0,0 +1,38 @@ +remove('var/cache/test'); + + $appKernel = new NelmioKernel($extraBundles, $routeConfiguration, $extraConfigs); + $appKernel->boot(); + + $this->container = $appKernel->getContainer(); + } + + public function getContainer(): ContainerInterface + { + return $this->container; + } +} diff --git a/Tests/Functional/Controller/Controller2209.php b/Tests/Functional/Controller/Controller2209.php new file mode 100644 index 000000000..58e7d7b01 --- /dev/null +++ b/Tests/Functional/Controller/Controller2209.php @@ -0,0 +1,25 @@ +configurableContainerFactory = new ConfigurableContainerFactory(); + + static::createClient([], ['HTTP_HOST' => 'api.example.com']); + } + + protected static function createKernel(array $options = []): KernelInterface + { + return new NelmioKernel([], null, []); + } + + protected function getOpenApiDefinition($area = 'default'): OA\OpenApi + { + return $this->configurableContainerFactory->getContainer()->get(sprintf('nelmio_api_doc.generator.%s', $area))->generate(); + } + + /** + * @dataProvider provideControllers + */ + public function testControllers(string $controllerName, ?string $fixtureName = null, array $extraConfigs = []): void + { + $fixtureName = $fixtureName ?? $controllerName; + + $routingConfiguration = function (RoutingConfigurator $routes) use ($controllerName) { + $routes->withPath('/')->import(__DIR__."/Controller/$controllerName.php", 'attribute'); + }; + + $this->configurableContainerFactory->create([], $routingConfiguration, $extraConfigs); + + $apiDefinition = $this->getOpenApiDefinition(); + + // Create the fixture if it does not exist + if (!file_exists($fixtureDir = __DIR__.'/Fixtures/'.$fixtureName.'.json')) { + file_put_contents($fixtureDir, $apiDefinition->toJson()); + } + + static::$usedFixtures[] = $fixtureName.'.json'; + + self::assertSame( + self::getFixture($fixtureDir), + $this->getOpenApiDefinition()->toJson() + ); + } + + public static function provideControllers(): iterable + { + if (version_compare(Kernel::VERSION, '6.3.0', '>=')) { + yield 'https://github.com/nelmio/NelmioApiDocBundle/issues/2209' => ['Controller2209']; + yield 'MapQueryString' => ['MapQueryStringController']; + yield 'https://github.com/nelmio/NelmioApiDocBundle/issues/2191' => [ + 'MapQueryStringController', + 'MapQueryStringCleanupComponents', + [__DIR__.'/Configs/CleanUnusedComponentsProcessor.yaml'], + ]; + } + } + + /** + * @depends testControllers + */ + public function testUnusedFixtures(): void + { + $fixtures = glob(__DIR__.'/Fixtures/*.json'); + $fixtures = array_map('basename', $fixtures); + + $diff = array_diff($fixtures, static::$usedFixtures); + + self::assertEmpty($diff, sprintf('The following fixtures are not used: %s', implode(', ', $diff))); + } + + private static function getFixture(string $fixture): string + { + if (!file_exists($fixture)) { + self::fail(sprintf('The fixture file "%s" does not exist.', $fixture)); + } + + $content = file_get_contents($fixture); + + if (false === $content) { + self::fail(sprintf('Failed to read the fixture file "%s".', $fixture)); + } + + return $content; + } +} diff --git a/Tests/Functional/Fixtures/Controller2209.json b/Tests/Functional/Fixtures/Controller2209.json new file mode 100644 index 000000000..899d0b3de --- /dev/null +++ b/Tests/Functional/Fixtures/Controller2209.json @@ -0,0 +1,89 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "", + "version": "0.0.0" + }, + "paths": { + "/api/v3/users": { + "post": { + "operationId": "post_api_v3_users_create", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Article81" + } + } + } + }, + "responses": { + "default": { + "description": "" + } + } + } + } + }, + "components": { + "schemas": { + "Article81": { + "required": [ + "id", + "type", + "intBackedType", + "notBackedType" + ], + "properties": { + "id": { + "type": "integer" + }, + "type": { + "$ref": "#/components/schemas/ArticleType81" + }, + "intBackedType": { + "$ref": "#/components/schemas/ArticleType81IntBacked" + }, + "notBackedType": { + "$ref": "#/components/schemas/ArticleType81NotBacked" + }, + "nullableType": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + }, + "type": "object" + }, + "ArticleType81": { + "type": "string", + "enum": [ + "draft", + "final" + ] + }, + "ArticleType81IntBacked": { + "type": "integer", + "enum": [ + 0, + 1 + ] + }, + "ArticleType81NotBacked": { + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + } + } + } +} \ No newline at end of file diff --git a/Tests/Functional/Fixtures/MapQueryStringCleanupComponents.json b/Tests/Functional/Fixtures/MapQueryStringCleanupComponents.json new file mode 100644 index 000000000..3d81ecbec --- /dev/null +++ b/Tests/Functional/Fixtures/MapQueryStringCleanupComponents.json @@ -0,0 +1,3087 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "", + "version": "0.0.0" + }, + "paths": { + "/article_map_query_string": { + "get": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_query_string_nullable": { + "get": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_query_string_passes_validation_groups": { + "get": { + "parameters": [ + { + "name": "property", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyInDefaultGroup", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyArray[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "parameters": [ + { + "name": "property", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyInDefaultGroup", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyArray[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "parameters": [ + { + "name": "property", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyInDefaultGroup", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyArray[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "parameters": [ + { + "name": "property", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyInDefaultGroup", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyArray[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "parameters": [ + { + "name": "property", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyInDefaultGroup", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyArray[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "parameters": [ + { + "name": "property", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyInDefaultGroup", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyArray[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "parameters": [ + { + "name": "property", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyInDefaultGroup", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyArray[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "parameters": [ + { + "name": "property", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyInDefaultGroup", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyArray[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_query_string_overwrite_parameters": { + "get": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_query_string_many_parameters": { + "get": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_query_string_many_parameters_optional": { + "get": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + } + }, + "components": { + "schemas": { + "ArticleType81": { + "type": "string", + "enum": [ + "draft", + "final" + ] + }, + "SortEnum": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + } +} \ No newline at end of file diff --git a/Tests/Functional/Fixtures/MapQueryStringController.json b/Tests/Functional/Fixtures/MapQueryStringController.json new file mode 100644 index 000000000..7f946ce06 --- /dev/null +++ b/Tests/Functional/Fixtures/MapQueryStringController.json @@ -0,0 +1,3310 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "", + "version": "0.0.0" + }, + "paths": { + "/article_map_query_string": { + "get": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_query_string_nullable": { + "get": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_query_string_passes_validation_groups": { + "get": { + "parameters": [ + { + "name": "property", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyInDefaultGroup", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyArray[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "parameters": [ + { + "name": "property", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyInDefaultGroup", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyArray[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "parameters": [ + { + "name": "property", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyInDefaultGroup", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyArray[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "parameters": [ + { + "name": "property", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyInDefaultGroup", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyArray[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "parameters": [ + { + "name": "property", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyInDefaultGroup", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyArray[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "parameters": [ + { + "name": "property", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyInDefaultGroup", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyArray[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "parameters": [ + { + "name": "property", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyInDefaultGroup", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyArray[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "parameters": [ + { + "name": "property", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyInDefaultGroup", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1 + } + }, + { + "name": "propertyArray[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_query_string_overwrite_parameters": { + "get": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nullableName", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + }, + { + "name": "articleType81", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/ArticleType81" + } + }, + { + "name": "nullableArticleType81", + "in": "query", + "required": false, + "schema": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_query_string_many_parameters": { + "get": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": true, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_query_string_many_parameters_optional": { + "get": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "parameters": [ + { + "name": "filter", + "in": "query", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + }, + { + "name": "filterBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + }, + { + "name": "sortBy", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/SortEnum" + } + }, + { + "name": "ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": {} + } + }, + { + "name": "productIds[]", + "in": "query", + "description": "List of product ids", + "required": false, + "schema": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + } + }, + "components": { + "schemas": { + "SymfonyMapQueryString": { + "required": [ + "id", + "name", + "articleType81" + ], + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "nullableName": { + "type": "string", + "nullable": true + }, + "articleType81": { + "$ref": "#/components/schemas/ArticleType81" + }, + "nullableArticleType81": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + }, + "type": "object" + }, + "SymfonyMapQueryString2": { + "required": [ + "id", + "name", + "articleType81" + ], + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "nullableName": { + "type": "string", + "nullable": true + }, + "articleType81": { + "$ref": "#/components/schemas/ArticleType81" + }, + "nullableArticleType81": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/ArticleType81" + } + ] + } + }, + "type": "object" + }, + "SymfonyConstraintsWithValidationGroups": { + "required": [ + "property", + "propertyInDefaultGroup" + ], + "properties": { + "property": { + "type": "integer", + "maximum": 100, + "minimum": 1 + }, + "propertyInDefaultGroup": { + "type": "integer", + "maximum": 100, + "minimum": 1 + }, + "propertyArray": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "type": "object" + }, + "FilterQueryModel": { + "required": [ + "filter", + "filterBy" + ], + "properties": { + "filter": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + }, + "filterBy": { + "type": "string" + } + }, + "type": "object" + }, + "PaginationQueryModel": { + "properties": { + "offset": { + "type": "integer", + "default": 0 + }, + "limit": { + "type": "integer", + "default": 10 + } + }, + "type": "object" + }, + "SortQueryModel": { + "required": [ + "sortBy" + ], + "properties": { + "sortBy": { + "type": "string" + }, + "orderBy": { + "$ref": "#/components/schemas/SortEnum" + } + }, + "type": "object" + }, + "ArrayQueryModel": { + "required": [ + "ids" + ], + "properties": { + "ids": { + "type": "array", + "items": {} + }, + "productIds": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + }, + "type": "object" + }, + "FilterQueryModel2": { + "required": [ + "filter", + "filterBy" + ], + "properties": { + "filter": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + }, + "filterBy": { + "type": "string" + } + }, + "type": "object" + }, + "PaginationQueryModel2": { + "properties": { + "offset": { + "type": "integer", + "default": 0 + }, + "limit": { + "type": "integer", + "default": 10 + } + }, + "type": "object" + }, + "SortQueryModel2": { + "required": [ + "sortBy" + ], + "properties": { + "sortBy": { + "type": "string" + }, + "orderBy": { + "$ref": "#/components/schemas/SortEnum" + } + }, + "type": "object" + }, + "ArrayQueryModel2": { + "required": [ + "ids" + ], + "properties": { + "ids": { + "type": "array", + "items": {} + }, + "productIds": { + "description": "List of product ids", + "type": "array", + "items": { + "type": "integer" + } + } + }, + "type": "object" + }, + "ArticleType81": { + "type": "string", + "enum": [ + "draft", + "final" + ] + }, + "SortEnum": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + } + } +} \ No newline at end of file diff --git a/Tests/Functional/NelmioKernel.php b/Tests/Functional/NelmioKernel.php new file mode 100644 index 000000000..fd73e7dfd --- /dev/null +++ b/Tests/Functional/NelmioKernel.php @@ -0,0 +1,77 @@ +extraBundles = $extraBundles; + $this->routeConfiguration = $routeConfiguration; + $this->extraConfigs = $extraConfigs; + } + + public function registerBundles(): iterable + { + $bundles = [ + new FrameworkBundle(), + new NelmioApiDocBundle(), + ]; + + return array_merge($bundles, $this->extraBundles); + } + + protected function configureRoutes(RoutingConfigurator $routes) + { + if (null !== $this->routeConfiguration) { + ($this->routeConfiguration)($routes); + } + } + + protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader) + { + $container->loadFromExtension('framework', ['test' => null]); + + foreach ($this->extraConfigs as $extraConfig) { + $loader->load($extraConfig); + } + } +} diff --git a/Tests/Functional/TestKernel.php b/Tests/Functional/TestKernel.php index bd4e40ee4..29e26876f 100644 --- a/Tests/Functional/TestKernel.php +++ b/Tests/Functional/TestKernel.php @@ -87,42 +87,30 @@ public function registerBundles(): iterable return $bundles; } - protected function configureRoutes($routes) + protected function configureRoutes(RoutingConfigurator $routes) { if (self::isAnnotationsAvailable()) { - $this->import($routes, __DIR__.'/Resources/routes.yaml', '/', 'yaml'); + $routes->withPath('/')->import(__DIR__.'/Resources/routes.yaml', 'yaml'); } else { - $this->import($routes, __DIR__.'/Resources/routes-attributes.yaml', '/', 'yaml'); + $routes->withPath('/')->import(__DIR__.'/Resources/routes-attributes.yaml', 'yaml'); } if ($this->flags & self::USE_JMS) { - $this->import($routes, __DIR__.'/Controller/JMSController.php', '/', self::isAnnotationsAvailable() ? 'annotation' : 'attribute'); + $routes->withPath('/')->import(__DIR__.'/Controller/JMSController.php', self::isAnnotationsAvailable() ? 'annotation' : 'attribute'); } if ($this->flags & self::USE_BAZINGA) { - $this->import($routes, __DIR__.'/Controller/BazingaController.php', '/', self::isAnnotationsAvailable() ? 'annotation' : 'attribute'); + $routes->withPath('/')->import(__DIR__.'/Controller/BazingaTypedController.php', self::isAnnotationsAvailable() ? 'annotation' : 'attribute'); try { new ReflectionMethod(Embedded::class, 'getType'); - $this->import($routes, __DIR__.'/Controller/BazingaTypedController.php', '/', self::isAnnotationsAvailable() ? 'annotation' : 'attribute'); + $routes->withPath('/')->import(__DIR__.'/Controller/BazingaTypedController.php', self::isAnnotationsAvailable() ? 'annotation' : 'attribute'); } catch (ReflectionException $e) { } } if ($this->flags & self::USE_FOSREST) { - $this->import($routes, __DIR__.'/Controller/FOSRestController.php', '/', self::isAnnotationsAvailable() ? 'annotation' : 'attribute'); - } - } - - /** - * BC for sf < 5.1. - */ - private function import($routes, $resource, $prefix, $type) - { - if ($routes instanceof RoutingConfigurator) { - $routes->withPath($prefix)->import($resource, $type); - } else { - $routes->import($resource, $prefix, $type); + $routes->withPath('/')->import(__DIR__.'/Controller/FOSRestController.php', self::isAnnotationsAvailable() ? 'annotation' : 'attribute'); } }