From a2ad1f4e6bd8a210171f43dcde49d1f385b0266b Mon Sep 17 00:00:00 2001 From: Maximilian Zumbansen Date: Wed, 12 Jun 2024 17:10:15 +0200 Subject: [PATCH 01/11] [#2297] Add MapRequestPayload array parameter handling --- .../SymfonyMapRequestPayloadDescriber.php | 7 ++- .../SymfonyMapRequestPayloadDescriberTest.php | 57 +++++++++++++++++++ .../fixture/SomeObject.php | 18 ++++++ 3 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php create mode 100644 tests/RouteDescriber/RouteArgumentDescriber/fixture/SomeObject.php diff --git a/src/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriber.php b/src/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriber.php index 5969960f5..5cdb8c88f 100644 --- a/src/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriber.php +++ b/src/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriber.php @@ -35,8 +35,13 @@ public function describe(ArgumentMetadata $argumentMetadata, OA\Operation $opera return; } + $typeClass = $argumentMetadata->getType(); + if (Type::BUILTIN_TYPE_ARRAY === $typeClass && null !== $attribute->type) { + $typeClass = $attribute->type; + } + $modelRef = $this->modelRegistry->register(new Model( - new Type(Type::BUILTIN_TYPE_OBJECT, false, $argumentMetadata->getType()), + new Type(Type::BUILTIN_TYPE_OBJECT, false, $typeClass), groups: $this->getGroups($attribute), serializationContext: $attribute->serializationContext, )); diff --git a/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php b/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php new file mode 100644 index 000000000..e56072b6e --- /dev/null +++ b/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php @@ -0,0 +1,57 @@ +createMock(ModelDescriberInterface::class)], + $this->createMock(OpenApi::class), + ); + $describer = new SymfonyMapRequestPayloadDescriber(); + $describer->setModelRegistry($registry); + + $argumentData = new ArgumentMetadata( + name: 'someObjects', + type: Type::BUILTIN_TYPE_ARRAY, + isVariadic: false, + hasDefaultValue: false, + defaultValue: null, + attributes: [ + new MapRequestPayload(type: SomeObject::class), + ] + ); + + $operation = $this->createMock(Operation::class); + $operation->_context = new Context(); + + $describer->describe($argumentData, $operation); + + self::assertSame('#/components/schemas/SomeObject', $operation->_context->{SymfonyMapRequestPayloadDescriber::CONTEXT_MODEL_REF}); + } +} diff --git a/tests/RouteDescriber/RouteArgumentDescriber/fixture/SomeObject.php b/tests/RouteDescriber/RouteArgumentDescriber/fixture/SomeObject.php new file mode 100644 index 000000000..3a4f256fe --- /dev/null +++ b/tests/RouteDescriber/RouteArgumentDescriber/fixture/SomeObject.php @@ -0,0 +1,18 @@ + Date: Wed, 12 Jun 2024 17:36:52 +0200 Subject: [PATCH 02/11] [#2297] Make php 7 compatible --- .../SymfonyMapRequestPayloadDescriber.php | 4 +++- .../SymfonyMapRequestPayloadDescriberTest.php | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriber.php b/src/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriber.php index 5cdb8c88f..4e5115ec6 100644 --- a/src/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriber.php +++ b/src/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriber.php @@ -36,7 +36,9 @@ public function describe(ArgumentMetadata $argumentMetadata, OA\Operation $opera } $typeClass = $argumentMetadata->getType(); - if (Type::BUILTIN_TYPE_ARRAY === $typeClass && null !== $attribute->type) { + + $reflectionAttribute = new \ReflectionClass(MapRequestPayload::class); + if (Type::BUILTIN_TYPE_ARRAY === $typeClass && $reflectionAttribute->hasProperty('type') && null !== $attribute->type) { $typeClass = $attribute->type; } diff --git a/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php b/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php index e56072b6e..88f2d69a1 100644 --- a/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php +++ b/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php @@ -29,6 +29,11 @@ class SymfonyMapRequestPayloadDescriberTest extends TestCase { public function testDescribeHandlesArrayParameterAndRegistersCorrectSchema(): void { + $attribute = new \ReflectionClass(MapRequestPayload::class); + if (!$attribute->hasProperty('type')) { + self::markTestSkipped('Requires Symfony 7.1'); + } + $registry = new ModelRegistry( [$this->createMock(ModelDescriberInterface::class)], $this->createMock(OpenApi::class), @@ -43,6 +48,7 @@ public function testDescribeHandlesArrayParameterAndRegistersCorrectSchema(): vo hasDefaultValue: false, defaultValue: null, attributes: [ + /** @phpstan-ignore-next-line can be removed with Symfony 7.1 integration */ new MapRequestPayload(type: SomeObject::class), ] ); From a69d1e207113dcc6b438b9cee6b800114850841c Mon Sep 17 00:00:00 2001 From: Maximilian Zumbansen Date: Wed, 12 Jun 2024 17:38:38 +0200 Subject: [PATCH 03/11] [#2297] Run fixer-fix --- .../SymfonyMapRequestPayloadDescriberTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php b/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php index 88f2d69a1..5975d0ddd 100644 --- a/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php +++ b/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php @@ -48,7 +48,7 @@ public function testDescribeHandlesArrayParameterAndRegistersCorrectSchema(): vo hasDefaultValue: false, defaultValue: null, attributes: [ - /** @phpstan-ignore-next-line can be removed with Symfony 7.1 integration */ + /* @phpstan-ignore-next-line can be removed with Symfony 7.1 integration */ new MapRequestPayload(type: SomeObject::class), ] ); From a89096e689ac7aaa234724bc022c0d975c27496b Mon Sep 17 00:00:00 2001 From: Maximilian Zumbansen Date: Wed, 12 Jun 2024 17:43:27 +0200 Subject: [PATCH 04/11] [#2297] Check for MapRequestPayloadClass existence (Symfony 5.4) --- .../SymfonyMapRequestPayloadDescriberTest.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php b/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php index 5975d0ddd..15509096e 100644 --- a/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php +++ b/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php @@ -29,6 +29,10 @@ class SymfonyMapRequestPayloadDescriberTest extends TestCase { public function testDescribeHandlesArrayParameterAndRegistersCorrectSchema(): void { + if (!class_exists(MapRequestPayload::class)) { + self::markTestSkipped('Requires Symfony 7.1'); + } + $attribute = new \ReflectionClass(MapRequestPayload::class); if (!$attribute->hasProperty('type')) { self::markTestSkipped('Requires Symfony 7.1'); From 1289629f0ba6f9117e4cb7e2b8636bf39c0c5b7d Mon Sep 17 00:00:00 2001 From: Maximilian Zumbansen Date: Mon, 17 Jun 2024 11:45:35 +0200 Subject: [PATCH 05/11] [#2297] Make tests php 7.4 viable --- .../SymfonyMapRequestPayloadDescriberTest.php | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php b/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php index 15509096e..9471b7f09 100644 --- a/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php +++ b/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php @@ -46,15 +46,13 @@ public function testDescribeHandlesArrayParameterAndRegistersCorrectSchema(): vo $describer->setModelRegistry($registry); $argumentData = new ArgumentMetadata( - name: 'someObjects', - type: Type::BUILTIN_TYPE_ARRAY, - isVariadic: false, - hasDefaultValue: false, - defaultValue: null, - attributes: [ - /* @phpstan-ignore-next-line can be removed with Symfony 7.1 integration */ - new MapRequestPayload(type: SomeObject::class), - ] + 'someObjects', + Type::BUILTIN_TYPE_ARRAY, + false, + false, + null, + false, + [new MapRequestPayload(SomeObject::class)] ); $operation = $this->createMock(Operation::class); From 105dd5ed48221d33fd941e99b5f0c36e6a31082e Mon Sep 17 00:00:00 2001 From: Maximilian Zumbansen Date: Mon, 17 Jun 2024 11:57:10 +0200 Subject: [PATCH 06/11] fix(#2297): Add missing default parameters --- .../SymfonyMapRequestPayloadDescriberTest.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php b/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php index 9471b7f09..613a2ea18 100644 --- a/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php +++ b/tests/RouteDescriber/RouteArgumentDescriber/SymfonyMapRequestPayloadDescriberTest.php @@ -21,7 +21,9 @@ use OpenApi\Annotations\OpenApi; use OpenApi\Context; use PHPUnit\Framework\TestCase; +use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Attribute\MapRequestPayload; +use Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestPayloadValueResolver; use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; use Symfony\Component\PropertyInfo\Type; @@ -52,7 +54,17 @@ public function testDescribeHandlesArrayParameterAndRegistersCorrectSchema(): vo false, null, false, - [new MapRequestPayload(SomeObject::class)] + [ + /* @phpstan-ignore-next-line can be removed with Symfony 7.1 integration */ + new MapRequestPayload( + null, + [], + null, + RequestPayloadValueResolver::class, + Response::HTTP_UNPROCESSABLE_ENTITY, + SomeObject::class + ), + ] ); $operation = $this->createMock(Operation::class); From 2c550ecfe9eb2e2c444c57ca8ac588eb419e693e Mon Sep 17 00:00:00 2001 From: djordy Date: Wed, 19 Jun 2024 16:00:27 +0200 Subject: [PATCH 07/11] add functional tests for MapRequestPayload array --- .../Functional/Controller/ApiController81.php | 14 ++++ tests/Functional/SymfonyFunctionalTest.php | 67 +++++++++++++++++++ 2 files changed, 81 insertions(+) diff --git a/tests/Functional/Controller/ApiController81.php b/tests/Functional/Controller/ApiController81.php index 489c92ca4..18f18e029 100644 --- a/tests/Functional/Controller/ApiController81.php +++ b/tests/Functional/Controller/ApiController81.php @@ -700,4 +700,18 @@ public function createArticleFromMapRequestPayloadPassedValidationGroups( #[MapRequestPayload(validationGroups: ['test'])] SymfonyConstraintsWithValidationGroups $symfonyConstraintsWithValidationGroups, ) { } + + #[Route('/article_map_request_payload_array', methods: ['POST'])] + #[OA\Response(response: '200', description: '')] + public function createArticleFromMapRequestPayloadArray( + #[MapRequestPayload(type: Article81::class)] array $articles, + ) { + } + + #[Route('/article_map_request_payload_nullable_array', methods: ['POST'])] + #[OA\Response(response: '200', description: '')] + public function createArticleFromMapRequestPayloadNullableArray( + #[MapRequestPayload(type: Article81::class)] ?array $nullableArticles, + ) { + } } diff --git a/tests/Functional/SymfonyFunctionalTest.php b/tests/Functional/SymfonyFunctionalTest.php index 61db0c600..e502faf34 100644 --- a/tests/Functional/SymfonyFunctionalTest.php +++ b/tests/Functional/SymfonyFunctionalTest.php @@ -830,4 +830,71 @@ public function testMapQueryParameterHandlesValidateFilters(): void ], ], json_decode($this->getOperation('/api/article_map_query_parameter_validate_filters', 'get')->toJson(), true)['parameters']); } + + public function testMapRequestPayloadArray(): void + { + if (!class_exists(MapRequestPayload::class)) { + self::markTestSkipped('Symfony 6.3 MapRequestPayload attribute not found'); + } + + if (!property_exists(MapRequestPayload::class, 'type')) { + self::markTestSkipped('Symfony 7.1 MapRequestPayload attribute type property not found'); + } + + self::assertEquals([ + 'operationId' => 'post_api_nelmio_apidoc_tests_functional_api_createarticlefrommaprequestpayloadarray', + 'responses' => [ + '200' => [ + 'description' => '', + ], + ], + 'requestBody' => [ + 'content' => [ + 'application/json' => [ + 'schema' => [ + 'type' => 'array', + 'items' => [ + '$ref' => '#/components/schemas/Article81', + ], + ], + ], + ], + 'required' => true, + ], + ], json_decode($this->getOperation('/api/article_map_request_payload_array', 'post')->toJson(), true)); + } + + public function testMapRequestPayloadNullableArray(): void + { + if (!class_exists(MapRequestPayload::class)) { + self::markTestSkipped('Symfony 6.3 MapRequestPayload attribute not found'); + } + + if (!property_exists(MapRequestPayload::class, 'type')) { + self::markTestSkipped('Symfony 7.1 MapRequestPayload attribute type property not found'); + } + + self::assertEquals([ + 'operationId' => 'post_api_nelmio_apidoc_tests_functional_api_createarticlefrommaprequestpayloadnullablearray', + 'responses' => [ + '200' => [ + 'description' => '', + ], + ], + 'requestBody' => [ + 'content' => [ + 'application/json' => [ + 'schema' => [ + 'type' => 'array', + 'items' => [ + '$ref' => '#/components/schemas/Article81', + ], + 'nullable' => true, + ], + ], + ], + 'required' => false, + ], + ], json_decode($this->getOperation('/api/article_map_request_payload_nullable_array', 'post')->toJson(), true)); + } } From b53648fc0c82fd12542e1a951c32590082c7932b Mon Sep 17 00:00:00 2001 From: djordy Date: Wed, 19 Jun 2024 16:06:00 +0200 Subject: [PATCH 08/11] fix MapRequestPayload not actually describing array --- src/Processor/MapRequestPayloadProcessor.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Processor/MapRequestPayloadProcessor.php b/src/Processor/MapRequestPayloadProcessor.php index 36cc345ac..ea0f41c22 100644 --- a/src/Processor/MapRequestPayloadProcessor.php +++ b/src/Processor/MapRequestPayloadProcessor.php @@ -70,8 +70,17 @@ public function __invoke(Analysis $analysis): void } $contentSchema = $this->getContentSchemaForType($requestBody, $format); - - Util::modifyAnnotationValue($contentSchema, 'ref', $modelRef); + if ('array' === $argumentMetaData->getType()) { + $contentSchema->type = 'array'; + $contentSchema->items = new OA\Items( + [ + 'ref' => $modelRef, + '_context' => Util::createWeakContext($contentSchema->_context), + ] + ); + } else { + Util::modifyAnnotationValue($contentSchema, 'ref', $modelRef); + } if ($argumentMetaData->isNullable()) { $contentSchema->nullable = true; From 23cdbc8b318b15abef7cf2fb307e3fd9e645a9cb Mon Sep 17 00:00:00 2001 From: djordy Date: Wed, 19 Jun 2024 16:19:52 +0200 Subject: [PATCH 09/11] Move MapRequestPayload functional tests to separate controller --- .../Functional/Controller/ApiController81.php | 60 ------ .../Controller/MapRequestPayloadArray.php | 33 +++ .../MapRequestPayloadController.php | 66 ++++++ tests/Functional/ControllerTest.php | 17 ++ .../Fixtures/MapRequestPayloadArray.json | 116 ++++++++++ .../Fixtures/MapRequestPayloadController.json | 199 +++++++++++++++++ tests/Functional/SymfonyFunctionalTest.php | 203 ------------------ 7 files changed, 431 insertions(+), 263 deletions(-) create mode 100644 tests/Functional/Controller/MapRequestPayloadArray.php create mode 100644 tests/Functional/Controller/MapRequestPayloadController.php create mode 100644 tests/Functional/Fixtures/MapRequestPayloadArray.json create mode 100644 tests/Functional/Fixtures/MapRequestPayloadController.json diff --git a/tests/Functional/Controller/ApiController81.php b/tests/Functional/Controller/ApiController81.php index 18f18e029..245bef742 100644 --- a/tests/Functional/Controller/ApiController81.php +++ b/tests/Functional/Controller/ApiController81.php @@ -50,7 +50,6 @@ use OpenApi\Attributes as OA; use Symfony\Component\HttpKernel\Attribute\MapQueryParameter; use Symfony\Component\HttpKernel\Attribute\MapQueryString; -use Symfony\Component\HttpKernel\Attribute\MapRequestPayload; use Symfony\Component\Routing\Annotation\Route; class ApiController81 @@ -655,63 +654,4 @@ public function fetchArticleFromMapQueryParameterOverwriteParameters( #[MapQueryParameter] ?string $changedType, ) { } - - #[Route('/article_map_request_payload', methods: ['POST'])] - #[OA\Response(response: '200', description: '')] - public function createArticleFromMapRequestPayload( - #[MapRequestPayload] Article81 $article81, - ) { - } - - #[Route('/article_map_request_payload_nullable', methods: ['POST'])] - #[OA\Response(response: '200', description: '')] - public function createArticleFromMapRequestPayloadNullable( - #[MapRequestPayload] ?Article81 $article81, - ) { - } - - #[Route('/article_map_request_payload_overwrite', methods: ['POST'])] - #[OA\RequestBody( - description: 'Request body description', - content: new Model(type: EntityWithNullableSchemaSet::class), - )] - #[OA\Response(response: '200', description: '')] - public function createArticleFromMapRequestPayloadOverwrite( - #[MapRequestPayload] Article81 $article81, - ) { - } - - #[Route('/article_map_request_payload_handles_already_set_content', methods: ['POST'])] - #[OA\RequestBody( - description: 'Request body description', - content: new OA\JsonContent( - ref: new Model(type: Article81::class) - ), - )] - #[OA\Response(response: '200', description: '')] - public function createArticleFromMapRequestPayloadHandlesAlreadySetContent( - #[MapRequestPayload] Article81 $article81, - ) { - } - - #[Route('/article_map_request_payload_validation_groups', methods: ['POST'])] - #[OA\Response(response: '200', description: '')] - public function createArticleFromMapRequestPayloadPassedValidationGroups( - #[MapRequestPayload(validationGroups: ['test'])] SymfonyConstraintsWithValidationGroups $symfonyConstraintsWithValidationGroups, - ) { - } - - #[Route('/article_map_request_payload_array', methods: ['POST'])] - #[OA\Response(response: '200', description: '')] - public function createArticleFromMapRequestPayloadArray( - #[MapRequestPayload(type: Article81::class)] array $articles, - ) { - } - - #[Route('/article_map_request_payload_nullable_array', methods: ['POST'])] - #[OA\Response(response: '200', description: '')] - public function createArticleFromMapRequestPayloadNullableArray( - #[MapRequestPayload(type: Article81::class)] ?array $nullableArticles, - ) { - } } diff --git a/tests/Functional/Controller/MapRequestPayloadArray.php b/tests/Functional/Controller/MapRequestPayloadArray.php new file mode 100644 index 000000000..5b28066b9 --- /dev/null +++ b/tests/Functional/Controller/MapRequestPayloadArray.php @@ -0,0 +1,33 @@ + $type, ], ]; + + yield 'Symfony 6.3 MapRequestPayload attribute' => [ + [ + 'name' => 'MapRequestPayloadController', + 'type' => $type, + ], + ]; + + if (property_exists(MapRequestPayload::class, 'type')) { + yield 'Symfony 7.1 MapRequestPayload array type' => [ + [ + 'name' => 'MapRequestPayloadArray', + 'type' => $type, + ], + ]; + } } } diff --git a/tests/Functional/Fixtures/MapRequestPayloadArray.json b/tests/Functional/Fixtures/MapRequestPayloadArray.json new file mode 100644 index 000000000..afbdb221f --- /dev/null +++ b/tests/Functional/Fixtures/MapRequestPayloadArray.json @@ -0,0 +1,116 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "", + "version": "0.0.0" + }, + "paths": { + "/article_map_request_payload_array": { + "post": { + "operationId": "post_nelmio_apidoc_tests_functional_maprequestpayloadarray_createarticlefrommaprequestpayloadarray", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Article81" + } + } + } + } + }, + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_request_payload_nullable_array": { + "post": { + "operationId": "post_nelmio_apidoc_tests_functional_maprequestpayloadarray_createarticlefrommaprequestpayloadnullablearray", + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Article81" + }, + "nullable": true + } + } + } + }, + "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, + "oneOf": [ + { + "$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/MapRequestPayloadController.json b/tests/Functional/Fixtures/MapRequestPayloadController.json new file mode 100644 index 000000000..139309ced --- /dev/null +++ b/tests/Functional/Fixtures/MapRequestPayloadController.json @@ -0,0 +1,199 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "", + "version": "0.0.0" + }, + "paths": { + "/article_map_request_payload": { + "post": { + "operationId": "post_nelmio_apidoc_tests_functional_maprequestpayload_createarticlefrommaprequestpayload", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Article81" + } + } + } + }, + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_request_payload_nullable": { + "post": { + "operationId": "post_nelmio_apidoc_tests_functional_maprequestpayload_createarticlefrommaprequestpayloadnullable", + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/Article81" + } + ], + "nullable": true + } + } + } + }, + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_request_payload_overwrite": { + "post": { + "operationId": "post_nelmio_apidoc_tests_functional_maprequestpayload_createarticlefrommaprequestpayloadoverwrite", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Article81" + } + } + } + }, + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_request_payload_handles_already_set_content": { + "post": { + "operationId": "post_nelmio_apidoc_tests_functional_maprequestpayload_createarticlefrommaprequestpayloadhandlesalreadysetcontent", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Article81" + } + } + } + }, + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_request_payload_validation_groups": { + "post": { + "operationId": "post_nelmio_apidoc_tests_functional_maprequestpayload_createarticlefrommaprequestpayloadpassedvalidationgroups", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SymfonyConstraintsWithValidationGroups" + } + } + } + }, + "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, + "oneOf": [ + { + "$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" + }, + "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/SymfonyFunctionalTest.php b/tests/Functional/SymfonyFunctionalTest.php index e502faf34..0570a2d6e 100644 --- a/tests/Functional/SymfonyFunctionalTest.php +++ b/tests/Functional/SymfonyFunctionalTest.php @@ -13,7 +13,6 @@ use Symfony\Component\HttpKernel\Attribute\MapQueryParameter; use Symfony\Component\HttpKernel\Attribute\MapQueryString; -use Symfony\Component\HttpKernel\Attribute\MapRequestPayload; class SymfonyFunctionalTest extends WebTestCase { @@ -406,141 +405,6 @@ public function testMapQueryParameterOverwriteParameter(): void ], json_decode($this->getOperation('/api/article_map_query_parameter_overwrite_parameters', 'get')->toJson(), true)); } - public function testMapRequestPayload(): void - { - if (!class_exists(MapRequestPayload::class)) { - self::markTestSkipped('Symfony 6.3 MapRequestPayload attribute not found'); - } - - self::assertEquals([ - 'operationId' => 'post_api_nelmio_apidoc_tests_functional_api_createarticlefrommaprequestpayload', - 'responses' => [ - '200' => [ - 'description' => '', - ], - ], - 'requestBody' => [ - 'content' => [ - 'application/json' => [ - 'schema' => [ - '$ref' => '#/components/schemas/Article81', - ], - ], - ], - 'required' => true, - ], - ], json_decode($this->getOperation('/api/article_map_request_payload', 'post')->toJson(), true)); - } - - public function testMapRequestPayloadNullable(): void - { - if (!class_exists(MapRequestPayload::class)) { - self::markTestSkipped('Symfony 6.3 MapRequestPayload attribute not found'); - } - - self::assertEquals([ - 'operationId' => 'post_api_nelmio_apidoc_tests_functional_api_createarticlefrommaprequestpayloadnullable', - 'responses' => [ - '200' => [ - 'description' => '', - ], - ], - 'requestBody' => [ - 'content' => [ - 'application/json' => [ - 'schema' => [ - 'nullable' => true, - 'oneOf' => [ - ['$ref' => '#/components/schemas/Article81'], - ], - ], - ], - ], - 'required' => false, - ], - ], json_decode($this->getOperation('/api/article_map_request_payload_nullable', 'post')->toJson(), true)); - } - - public function testMapRequestPayloadOverwriteRequestBody(): void - { - if (!class_exists(MapRequestPayload::class)) { - self::markTestSkipped('Symfony 6.3 MapRequestPayload attribute not found'); - } - - self::assertEquals([ - 'operationId' => 'post_api_nelmio_apidoc_tests_functional_api_createarticlefrommaprequestpayloadoverwrite', - 'responses' => [ - '200' => [ - 'description' => '', - ], - ], - 'requestBody' => [ - 'content' => [ - 'application/json' => [ - 'schema' => [ - '$ref' => '#/components/schemas/EntityWithNullableSchemaSet', - ], - ], - ], - 'required' => true, - 'description' => 'Request body description', - ], - ], json_decode($this->getOperation('/api/article_map_request_payload_overwrite', 'post')->toJson(), true)); - } - - public function testMapRequestPayloadHandlesAlreadySetContent(): void - { - if (!class_exists(MapRequestPayload::class)) { - self::markTestSkipped('Symfony 6.3 MapRequestPayload attribute not found'); - } - - self::assertEquals([ - 'operationId' => 'post_api_nelmio_apidoc_tests_functional_api_createarticlefrommaprequestpayloadhandlesalreadysetcontent', - 'responses' => [ - '200' => [ - 'description' => '', - ], - ], - 'requestBody' => [ - 'content' => [ - 'application/json' => [ - 'schema' => [ - '$ref' => '#/components/schemas/Article81', - ], - ], - ], - 'required' => true, - 'description' => 'Request body description', - ], - ], json_decode($this->getOperation('/api/article_map_request_payload_handles_already_set_content', 'post')->toJson(), true)); - } - - public function testMapRequestPayloadPassesValidationGroups(): void - { - if (!class_exists(MapRequestPayload::class)) { - self::markTestSkipped('Symfony 6.3 MapRequestPayload attribute not found'); - } - - self::assertEquals([ - 'operationId' => 'post_api_nelmio_apidoc_tests_functional_api_createarticlefrommaprequestpayloadpassedvalidationgroups', - 'responses' => [ - '200' => [ - 'description' => '', - ], - ], - 'requestBody' => [ - 'content' => [ - 'application/json' => [ - 'schema' => [ - '$ref' => '#/components/schemas/SymfonyConstraintsTestGroup', - ], - ], - ], - 'required' => true, - ], - ], json_decode($this->getOperation('/api/article_map_request_payload_validation_groups', 'post')->toJson(), true)); - } - public function testMapQueryStringPassesValidationGroups(): void { if (!class_exists(MapQueryString::class)) { @@ -830,71 +694,4 @@ public function testMapQueryParameterHandlesValidateFilters(): void ], ], json_decode($this->getOperation('/api/article_map_query_parameter_validate_filters', 'get')->toJson(), true)['parameters']); } - - public function testMapRequestPayloadArray(): void - { - if (!class_exists(MapRequestPayload::class)) { - self::markTestSkipped('Symfony 6.3 MapRequestPayload attribute not found'); - } - - if (!property_exists(MapRequestPayload::class, 'type')) { - self::markTestSkipped('Symfony 7.1 MapRequestPayload attribute type property not found'); - } - - self::assertEquals([ - 'operationId' => 'post_api_nelmio_apidoc_tests_functional_api_createarticlefrommaprequestpayloadarray', - 'responses' => [ - '200' => [ - 'description' => '', - ], - ], - 'requestBody' => [ - 'content' => [ - 'application/json' => [ - 'schema' => [ - 'type' => 'array', - 'items' => [ - '$ref' => '#/components/schemas/Article81', - ], - ], - ], - ], - 'required' => true, - ], - ], json_decode($this->getOperation('/api/article_map_request_payload_array', 'post')->toJson(), true)); - } - - public function testMapRequestPayloadNullableArray(): void - { - if (!class_exists(MapRequestPayload::class)) { - self::markTestSkipped('Symfony 6.3 MapRequestPayload attribute not found'); - } - - if (!property_exists(MapRequestPayload::class, 'type')) { - self::markTestSkipped('Symfony 7.1 MapRequestPayload attribute type property not found'); - } - - self::assertEquals([ - 'operationId' => 'post_api_nelmio_apidoc_tests_functional_api_createarticlefrommaprequestpayloadnullablearray', - 'responses' => [ - '200' => [ - 'description' => '', - ], - ], - 'requestBody' => [ - 'content' => [ - 'application/json' => [ - 'schema' => [ - 'type' => 'array', - 'items' => [ - '$ref' => '#/components/schemas/Article81', - ], - 'nullable' => true, - ], - ], - ], - 'required' => false, - ], - ], json_decode($this->getOperation('/api/article_map_request_payload_nullable_array', 'post')->toJson(), true)); - } } From 2763082beee0a0e681f50a589cd450c05729511f Mon Sep 17 00:00:00 2001 From: djordy Date: Wed, 19 Jun 2024 16:27:50 +0200 Subject: [PATCH 10/11] move all Map* attribute tests to their own controller fixture tests --- .../Functional/Controller/ApiController81.php | 142 -- .../MapQueryParameterController.php | 79 + tests/Functional/ControllerTest.php | 7 + .../Fixtures/MapQueryParameterController.json | 1699 +++++++++++++++++ tests/Functional/SymfonyFunctionalTest.php | 697 ------- 5 files changed, 1785 insertions(+), 839 deletions(-) create mode 100644 tests/Functional/Controller/MapQueryParameterController.php create mode 100644 tests/Functional/Fixtures/MapQueryParameterController.json delete mode 100644 tests/Functional/SymfonyFunctionalTest.php diff --git a/tests/Functional/Controller/ApiController81.php b/tests/Functional/Controller/ApiController81.php index 245bef742..f681f4bc6 100644 --- a/tests/Functional/Controller/ApiController81.php +++ b/tests/Functional/Controller/ApiController81.php @@ -28,16 +28,11 @@ use Nelmio\ApiDocBundle\Tests\Functional\Entity\EntityWithObjectType; use Nelmio\ApiDocBundle\Tests\Functional\Entity\EntityWithRef; use Nelmio\ApiDocBundle\Tests\Functional\Entity\EntityWithUuid; -use Nelmio\ApiDocBundle\Tests\Functional\Entity\QueryModel\ArrayQueryModel; -use Nelmio\ApiDocBundle\Tests\Functional\Entity\QueryModel\FilterQueryModel; -use Nelmio\ApiDocBundle\Tests\Functional\Entity\QueryModel\PaginationQueryModel; -use Nelmio\ApiDocBundle\Tests\Functional\Entity\QueryModel\SortQueryModel; use Nelmio\ApiDocBundle\Tests\Functional\Entity\RangeInteger; use Nelmio\ApiDocBundle\Tests\Functional\Entity\SymfonyConstraints81; use Nelmio\ApiDocBundle\Tests\Functional\Entity\SymfonyConstraintsWithValidationGroups; use Nelmio\ApiDocBundle\Tests\Functional\Entity\SymfonyDiscriminator81; use Nelmio\ApiDocBundle\Tests\Functional\Entity\SymfonyDiscriminatorFileMapping; -use Nelmio\ApiDocBundle\Tests\Functional\Entity\SymfonyMapQueryString; use Nelmio\ApiDocBundle\Tests\Functional\Entity\User; use Nelmio\ApiDocBundle\Tests\Functional\EntityExcluded\Symfony7\SerializedNameEntity; use Nelmio\ApiDocBundle\Tests\Functional\Form\DummyType; @@ -48,8 +43,6 @@ use Nelmio\ApiDocBundle\Tests\Functional\Form\FormWithRefType; use Nelmio\ApiDocBundle\Tests\Functional\Form\UserType; use OpenApi\Attributes as OA; -use Symfony\Component\HttpKernel\Attribute\MapQueryParameter; -use Symfony\Component\HttpKernel\Attribute\MapQueryString; use Symfony\Component\Routing\Annotation\Route; class ApiController81 @@ -519,139 +512,4 @@ public function arbitraryArray() public function dictionary() { } - - #[Route('/article_map_query_string')] - #[OA\Response(response: '200', description: '')] - public function fetchArticleFromMapQueryString( - #[MapQueryString] SymfonyMapQueryString $article81Query - ) { - } - - #[Route('/article_map_query_string_nullable')] - #[OA\Response(response: '200', description: '')] - public function fetchArticleFromMapQueryStringNullable( - #[MapQueryString] ?SymfonyMapQueryString $article81Query - ) { - } - - #[Route('/article_map_query_string_passes_validation_groups')] - #[OA\Response(response: '200', description: '')] - public function fetchArticleFromMapQueryStringHandlesValidationGroups( - #[MapQueryString(validationGroups: ['test'])] SymfonyConstraintsWithValidationGroups $symfonyConstraintsWithValidationGroups, - ) { - } - - #[Route('/article_map_query_string_overwrite_parameters')] - #[OA\Parameter( - name: 'id', - in: 'query', - schema: new OA\Schema(type: 'string', nullable: true), - description: 'Query parameter id description' - )] - #[OA\Parameter( - name: 'name', - in: 'query', - description: 'Query parameter name description' - )] - #[OA\Parameter( - name: 'nullableName', - in: 'query', - description: 'Query parameter nullableName description' - )] - #[OA\Parameter( - name: 'articleType81', - in: 'query', - description: 'Query parameter articleType81 description' - )] - #[OA\Parameter( - name: 'nullableArticleType81', - in: 'query', - description: 'Query parameter nullableArticleType81 description' - )] - #[OA\Response(response: '200', description: '')] - public function fetchArticleFromMapQueryStringOverwriteParameters( - #[MapQueryString] SymfonyMapQueryString $article81Query - ) { - } - - #[Route('/article_map_query_string_many_parameters')] - #[OA\Response(response: '200', description: '')] - public function fetchArticleWithManyParameters( - #[MapQueryString] FilterQueryModel $filterQuery, - #[MapQueryString] PaginationQueryModel $paginationQuery, - #[MapQueryString] SortQueryModel $sortQuery, - #[MapQueryString] ArrayQueryModel $arrayQuery, - ) { - } - - #[Route('/article_map_query_string_many_parameters_optional')] - #[OA\Response(response: '200', description: '')] - public function fetchArticleWithManyOptionalParameters( - #[MapQueryString] ?FilterQueryModel $filterQuery, - #[MapQueryString] ?PaginationQueryModel $paginationQuery, - #[MapQueryString] ?SortQueryModel $sortQuery, - #[MapQueryString] ?ArrayQueryModel $arrayQuery, - ) { - } - - #[Route('/article_map_query_parameter')] - #[OA\Response(response: '200', description: '')] - public function fetchArticleFromMapQueryParameter( - #[MapQueryParameter] int $someInt, - #[MapQueryParameter] float $someFloat, - #[MapQueryParameter] bool $someBool, - #[MapQueryParameter] string $someString, - #[MapQueryParameter] array $someArray, - ) { - } - - #[Route('/article_map_query_parameter_validate_filters')] - #[OA\Response(response: '200', description: '')] - public function fetchArticleFromMapQueryParameterValidateFilters( - #[MapQueryParameter(options: ['min_range' => 2, 'max_range' => 1234])] int $minMaxInt, - #[MapQueryParameter(filter: FILTER_VALIDATE_DOMAIN)] string $domain, - #[MapQueryParameter(filter: FILTER_VALIDATE_EMAIL)] string $email, - #[MapQueryParameter(filter: FILTER_VALIDATE_IP)] string $ip, - #[MapQueryParameter(filter: FILTER_VALIDATE_IP, flags: FILTER_FLAG_IPV4)] string $ipv4, - #[MapQueryParameter(filter: FILTER_VALIDATE_IP, flags: FILTER_FLAG_IPV6)] string $ipv6, - #[MapQueryParameter(filter: FILTER_VALIDATE_MAC)] string $macAddress, - #[MapQueryParameter(filter: FILTER_VALIDATE_REGEXP, options: ['regexp' => '/^test/'])] string $regexp, - #[MapQueryParameter(filter: FILTER_VALIDATE_URL)] string $url, - ) { - } - - #[Route('/article_map_query_parameter_nullable')] - #[OA\Response(response: '200', description: '')] - public function fetchArticleFromMapQueryParameterNullable( - #[MapQueryParameter] ?int $id, - ) { - } - - #[Route('/article_map_query_parameter_default')] - #[OA\Response(response: '200', description: '')] - public function fetchArticleFromMapQueryParameterDefault( - #[MapQueryParameter] int $id = 123, - ) { - } - - #[Route('/article_map_query_parameter_overwrite_parameters')] - #[OA\Parameter( - name: 'id', - in: 'query', - description: 'Query parameter id description', - example: 123, - )] - #[OA\Parameter( - name: 'changedType', - in: 'query', - schema: new OA\Schema(type: 'int', nullable: false), - description: 'Incorrectly described query parameter', - example: 123, - )] - #[OA\Response(response: '200', description: '')] - public function fetchArticleFromMapQueryParameterOverwriteParameters( - #[MapQueryParameter] ?int $id, - #[MapQueryParameter] ?string $changedType, - ) { - } } diff --git a/tests/Functional/Controller/MapQueryParameterController.php b/tests/Functional/Controller/MapQueryParameterController.php new file mode 100644 index 000000000..6a1384901 --- /dev/null +++ b/tests/Functional/Controller/MapQueryParameterController.php @@ -0,0 +1,79 @@ + 2, 'max_range' => 1234])] int $minMaxInt, + #[MapQueryParameter(filter: FILTER_VALIDATE_DOMAIN)] string $domain, + #[MapQueryParameter(filter: FILTER_VALIDATE_EMAIL)] string $email, + #[MapQueryParameter(filter: FILTER_VALIDATE_IP)] string $ip, + #[MapQueryParameter(filter: FILTER_VALIDATE_IP, flags: FILTER_FLAG_IPV4)] string $ipv4, + #[MapQueryParameter(filter: FILTER_VALIDATE_IP, flags: FILTER_FLAG_IPV6)] string $ipv6, + #[MapQueryParameter(filter: FILTER_VALIDATE_MAC)] string $macAddress, + #[MapQueryParameter(filter: FILTER_VALIDATE_REGEXP, options: ['regexp' => '/^test/'])] string $regexp, + #[MapQueryParameter(filter: FILTER_VALIDATE_URL)] string $url, + ) { + } + + #[Route('/article_map_query_parameter_nullable')] + #[OA\Response(response: '200', description: '')] + public function fetchArticleFromMapQueryParameterNullable( + #[MapQueryParameter] ?int $id, + ) { + } + + #[Route('/article_map_query_parameter_default')] + #[OA\Response(response: '200', description: '')] + public function fetchArticleFromMapQueryParameterDefault( + #[MapQueryParameter] int $id = 123, + ) { + } + + #[Route('/article_map_query_parameter_overwrite_parameters')] + #[OA\Parameter( + name: 'id', + in: 'query', + description: 'Query parameter id description', + example: 123, + )] + #[OA\Parameter( + name: 'changedType', + in: 'query', + schema: new OA\Schema(type: 'int', nullable: false), + description: 'Incorrectly described query parameter', + example: 123, + )] + #[OA\Response(response: '200', description: '')] + public function fetchArticleFromMapQueryParameterOverwriteParameters( + #[MapQueryParameter] ?int $id, + #[MapQueryParameter] ?string $changedType, + ) { + } +} diff --git a/tests/Functional/ControllerTest.php b/tests/Functional/ControllerTest.php index 39958823f..b1ef3b477 100644 --- a/tests/Functional/ControllerTest.php +++ b/tests/Functional/ControllerTest.php @@ -131,6 +131,13 @@ public static function provideAttributeTestCases(): \Generator ], ]; + yield 'Symfony 6.3 MapQueryParameter attribute' => [ + [ + 'name' => 'MapQueryParameterController', + 'type' => $type, + ], + ]; + yield 'Symfony 6.3 MapRequestPayload attribute' => [ [ 'name' => 'MapRequestPayloadController', diff --git a/tests/Functional/Fixtures/MapQueryParameterController.json b/tests/Functional/Fixtures/MapQueryParameterController.json new file mode 100644 index 000000000..773d9c222 --- /dev/null +++ b/tests/Functional/Fixtures/MapQueryParameterController.json @@ -0,0 +1,1699 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "", + "version": "0.0.0" + }, + "paths": { + "/article_map_query_parameter": { + "get": { + "operationId": "get_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameter", + "parameters": [ + { + "name": "someInt", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "someFloat", + "in": "query", + "required": true, + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "someBool", + "in": "query", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "someString", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "someArray[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "operationId": "put_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameter", + "parameters": [ + { + "name": "someInt", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "someFloat", + "in": "query", + "required": true, + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "someBool", + "in": "query", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "someString", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "someArray[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "operationId": "post_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameter", + "parameters": [ + { + "name": "someInt", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "someFloat", + "in": "query", + "required": true, + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "someBool", + "in": "query", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "someString", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "someArray[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "operationId": "delete_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameter", + "parameters": [ + { + "name": "someInt", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "someFloat", + "in": "query", + "required": true, + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "someBool", + "in": "query", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "someString", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "someArray[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "operationId": "options_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameter", + "parameters": [ + { + "name": "someInt", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "someFloat", + "in": "query", + "required": true, + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "someBool", + "in": "query", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "someString", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "someArray[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "operationId": "head_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameter", + "parameters": [ + { + "name": "someInt", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "someFloat", + "in": "query", + "required": true, + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "someBool", + "in": "query", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "someString", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "someArray[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "operationId": "patch_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameter", + "parameters": [ + { + "name": "someInt", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "someFloat", + "in": "query", + "required": true, + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "someBool", + "in": "query", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "someString", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "someArray[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "operationId": "trace_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameter", + "parameters": [ + { + "name": "someInt", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "someFloat", + "in": "query", + "required": true, + "schema": { + "type": "number", + "format": "float" + } + }, + { + "name": "someBool", + "in": "query", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "someString", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "someArray[]", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": {} + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_query_parameter_validate_filters": { + "get": { + "operationId": "get_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", + "parameters": [ + { + "name": "minMaxInt", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 1234, + "minimum": 2 + } + }, + { + "name": "domain", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "hostname" + } + }, + { + "name": "email", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "email" + } + }, + { + "name": "ip", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ip" + } + }, + { + "name": "ipv4", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ipv4" + } + }, + { + "name": "ipv6", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ipv6" + } + }, + { + "name": "macAddress", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "mac" + } + }, + { + "name": "regexp", + "in": "query", + "required": true, + "schema": { + "type": "string", + "pattern": "/^test/" + } + }, + { + "name": "url", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "uri" + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "operationId": "put_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", + "parameters": [ + { + "name": "minMaxInt", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 1234, + "minimum": 2 + } + }, + { + "name": "domain", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "hostname" + } + }, + { + "name": "email", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "email" + } + }, + { + "name": "ip", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ip" + } + }, + { + "name": "ipv4", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ipv4" + } + }, + { + "name": "ipv6", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ipv6" + } + }, + { + "name": "macAddress", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "mac" + } + }, + { + "name": "regexp", + "in": "query", + "required": true, + "schema": { + "type": "string", + "pattern": "/^test/" + } + }, + { + "name": "url", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "uri" + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "operationId": "post_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", + "parameters": [ + { + "name": "minMaxInt", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 1234, + "minimum": 2 + } + }, + { + "name": "domain", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "hostname" + } + }, + { + "name": "email", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "email" + } + }, + { + "name": "ip", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ip" + } + }, + { + "name": "ipv4", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ipv4" + } + }, + { + "name": "ipv6", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ipv6" + } + }, + { + "name": "macAddress", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "mac" + } + }, + { + "name": "regexp", + "in": "query", + "required": true, + "schema": { + "type": "string", + "pattern": "/^test/" + } + }, + { + "name": "url", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "uri" + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "operationId": "delete_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", + "parameters": [ + { + "name": "minMaxInt", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 1234, + "minimum": 2 + } + }, + { + "name": "domain", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "hostname" + } + }, + { + "name": "email", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "email" + } + }, + { + "name": "ip", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ip" + } + }, + { + "name": "ipv4", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ipv4" + } + }, + { + "name": "ipv6", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ipv6" + } + }, + { + "name": "macAddress", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "mac" + } + }, + { + "name": "regexp", + "in": "query", + "required": true, + "schema": { + "type": "string", + "pattern": "/^test/" + } + }, + { + "name": "url", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "uri" + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "operationId": "options_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", + "parameters": [ + { + "name": "minMaxInt", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 1234, + "minimum": 2 + } + }, + { + "name": "domain", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "hostname" + } + }, + { + "name": "email", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "email" + } + }, + { + "name": "ip", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ip" + } + }, + { + "name": "ipv4", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ipv4" + } + }, + { + "name": "ipv6", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ipv6" + } + }, + { + "name": "macAddress", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "mac" + } + }, + { + "name": "regexp", + "in": "query", + "required": true, + "schema": { + "type": "string", + "pattern": "/^test/" + } + }, + { + "name": "url", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "uri" + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "operationId": "head_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", + "parameters": [ + { + "name": "minMaxInt", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 1234, + "minimum": 2 + } + }, + { + "name": "domain", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "hostname" + } + }, + { + "name": "email", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "email" + } + }, + { + "name": "ip", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ip" + } + }, + { + "name": "ipv4", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ipv4" + } + }, + { + "name": "ipv6", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ipv6" + } + }, + { + "name": "macAddress", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "mac" + } + }, + { + "name": "regexp", + "in": "query", + "required": true, + "schema": { + "type": "string", + "pattern": "/^test/" + } + }, + { + "name": "url", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "uri" + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "operationId": "patch_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", + "parameters": [ + { + "name": "minMaxInt", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 1234, + "minimum": 2 + } + }, + { + "name": "domain", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "hostname" + } + }, + { + "name": "email", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "email" + } + }, + { + "name": "ip", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ip" + } + }, + { + "name": "ipv4", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ipv4" + } + }, + { + "name": "ipv6", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ipv6" + } + }, + { + "name": "macAddress", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "mac" + } + }, + { + "name": "regexp", + "in": "query", + "required": true, + "schema": { + "type": "string", + "pattern": "/^test/" + } + }, + { + "name": "url", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "uri" + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "operationId": "trace_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", + "parameters": [ + { + "name": "minMaxInt", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "maximum": 1234, + "minimum": 2 + } + }, + { + "name": "domain", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "hostname" + } + }, + { + "name": "email", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "email" + } + }, + { + "name": "ip", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ip" + } + }, + { + "name": "ipv4", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ipv4" + } + }, + { + "name": "ipv6", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "ipv6" + } + }, + { + "name": "macAddress", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "mac" + } + }, + { + "name": "regexp", + "in": "query", + "required": true, + "schema": { + "type": "string", + "pattern": "/^test/" + } + }, + { + "name": "url", + "in": "query", + "required": true, + "schema": { + "type": "string", + "format": "uri" + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_query_parameter_nullable": { + "get": { + "operationId": "get_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "nullable": true + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "operationId": "put_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "nullable": true + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "operationId": "post_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "nullable": true + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "operationId": "delete_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "nullable": true + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "operationId": "options_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "nullable": true + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "operationId": "head_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "nullable": true + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "operationId": "patch_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "nullable": true + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "operationId": "trace_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "nullable": true + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_query_parameter_default": { + "get": { + "operationId": "get_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 123 + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "operationId": "put_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 123 + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "operationId": "post_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 123 + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "operationId": "delete_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 123 + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "operationId": "options_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 123 + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "operationId": "head_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 123 + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "operationId": "patch_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 123 + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "operationId": "trace_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 123 + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + }, + "/article_map_query_parameter_overwrite_parameters": { + "get": { + "operationId": "get_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "nullable": true + } + }, + { + "name": "changedType", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "put": { + "operationId": "put_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "nullable": true + } + }, + { + "name": "changedType", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "post": { + "operationId": "post_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "nullable": true + } + }, + { + "name": "changedType", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "delete": { + "operationId": "delete_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "nullable": true + } + }, + { + "name": "changedType", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "options": { + "operationId": "options_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "nullable": true + } + }, + { + "name": "changedType", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "head": { + "operationId": "head_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "nullable": true + } + }, + { + "name": "changedType", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "patch": { + "operationId": "patch_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "nullable": true + } + }, + { + "name": "changedType", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + } + ], + "responses": { + "default": { + "description": "" + } + } + }, + "trace": { + "operationId": "trace_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "nullable": true + } + }, + { + "name": "changedType", + "in": "query", + "required": false, + "schema": { + "type": "string", + "nullable": true + } + } + ], + "responses": { + "default": { + "description": "" + } + } + } + } + } +} \ No newline at end of file diff --git a/tests/Functional/SymfonyFunctionalTest.php b/tests/Functional/SymfonyFunctionalTest.php deleted file mode 100644 index 0570a2d6e..000000000 --- a/tests/Functional/SymfonyFunctionalTest.php +++ /dev/null @@ -1,697 +0,0 @@ - 'api.example.com']); - } - - public function testMapQueryStringModelGetsCreated(): void - { - if (!class_exists(MapQueryString::class)) { - self::markTestSkipped('Symfony 6.3 MapQueryString attribute not found'); - } - - $expected = [ - 'schema' => '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, - 'oneOf' => [ - ['$ref' => '#/components/schemas/ArticleType81'], - ], - ], - ], - 'type' => 'object', - ]; - - self::assertSame($expected, json_decode($this->getModel('SymfonyMapQueryString')->toJson(), true)); - } - - public function testMapQueryString(): void - { - if (!class_exists(MapQueryString::class)) { - self::markTestSkipped('Symfony 6.3 MapQueryString attribute not found'); - } - - self::assertEquals([ - 'operationId' => 'get_api_nelmio_apidoc_tests_functional_api_fetcharticlefrommapquerystring', - '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, - 'oneOf' => [ - ['$ref' => '#/components/schemas/ArticleType81'], - ], - ], - ], - ], - 'responses' => [ - '200' => [ - 'description' => '', - ], - ], - ], json_decode($this->getOperation('/api/article_map_query_string', 'get')->toJson(), true)); - } - - public function testMapQueryStringParametersAreOptional(): void - { - if (!class_exists(MapQueryString::class)) { - self::markTestSkipped('Symfony 6.3 MapQueryString attribute not found'); - } - - self::assertEquals([ - 'operationId' => 'get_api_nelmio_apidoc_tests_functional_api_fetcharticlefrommapquerystringnullable', - '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, - 'oneOf' => [ - ['$ref' => '#/components/schemas/ArticleType81'], - ], - ], - ], - ], - 'responses' => [ - '200' => [ - 'description' => '', - ], - ], - ], json_decode($this->getOperation('/api/article_map_query_string_nullable', 'get')->toJson(), true)); - } - - public function testMapQueryStringParametersOverwriteParameters(): void - { - if (!class_exists(MapQueryString::class)) { - self::markTestSkipped('Symfony 6.3 MapQueryString attribute not found'); - } - - self::assertEquals([ - 'operationId' => 'get_api_nelmio_apidoc_tests_functional_api_fetcharticlefrommapquerystringoverwriteparameters', - 'parameters' => [ - [ - 'name' => 'id', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'string', - 'nullable' => true, - ], - 'description' => 'Query parameter id description', - ], - [ - 'name' => 'name', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'string', - ], - 'description' => 'Query parameter name description', - ], - [ - 'name' => 'nullableName', - 'in' => 'query', - 'required' => false, - 'schema' => [ - 'type' => 'string', - 'nullable' => true, - ], - 'description' => 'Query parameter nullableName description', - ], - [ - 'name' => 'articleType81', - 'in' => 'query', - 'required' => true, - 'schema' => [ - '$ref' => '#/components/schemas/ArticleType81', - ], - 'description' => 'Query parameter articleType81 description', - ], - [ - 'name' => 'nullableArticleType81', - 'in' => 'query', - 'required' => false, - 'schema' => [ - 'nullable' => true, - 'oneOf' => [ - ['$ref' => '#/components/schemas/ArticleType81'], - ], - ], - 'description' => 'Query parameter nullableArticleType81 description', - ], - ], - 'responses' => [ - '200' => [ - 'description' => '', - ], - ], - ], json_decode($this->getOperation('/api/article_map_query_string_overwrite_parameters', 'get')->toJson(), true)); - } - - public function testMapQueryParameter(): void - { - if (!class_exists(MapQueryParameter::class)) { - self::markTestSkipped('Symfony 6.3 MapQueryParameter attribute not found'); - } - - self::assertEquals([ - [ - 'name' => 'someInt', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'integer', - ], - ], - [ - 'name' => 'someFloat', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'number', - 'format' => 'float', - ], - ], - [ - 'name' => 'someBool', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'boolean', - ], - ], - [ - 'name' => 'someString', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'string', - ], - ], - [ - 'name' => 'someArray[]', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'array', - 'items' => [], - ], - ], - ], json_decode($this->getOperation('/api/article_map_query_parameter', 'get')->toJson(), true)['parameters']); - } - - public function testMapQueryParameterHandlesNullable(): void - { - if (!class_exists(MapQueryParameter::class)) { - self::markTestSkipped('Symfony 6.3 MapQueryParameter attribute not found'); - } - - self::assertEquals([ - 'operationId' => 'get_api_nelmio_apidoc_tests_functional_api_fetcharticlefrommapqueryparameternullable', - 'parameters' => [ - [ - 'name' => 'id', - 'in' => 'query', - 'required' => false, - 'schema' => [ - 'type' => 'integer', - 'nullable' => true, - ], - ], - ], - 'responses' => [ - '200' => [ - 'description' => '', - ], - ], - ], json_decode($this->getOperation('/api/article_map_query_parameter_nullable', 'get')->toJson(), true)); - } - - public function testMapQueryParameterHandlesDefault(): void - { - if (!class_exists(MapQueryParameter::class)) { - self::markTestSkipped('Symfony 6.3 MapQueryParameter attribute not found'); - } - - self::assertEquals([ - 'operationId' => 'get_api_nelmio_apidoc_tests_functional_api_fetcharticlefrommapqueryparameterdefault', - 'parameters' => [ - [ - 'name' => 'id', - 'in' => 'query', - 'required' => false, - 'schema' => [ - 'type' => 'integer', - 'default' => 123, - ], - ], - ], - 'responses' => [ - '200' => [ - 'description' => '', - ], - ], - ], json_decode($this->getOperation('/api/article_map_query_parameter_default', 'get')->toJson(), true)); - } - - public function testMapQueryParameterOverwriteParameter(): void - { - if (!class_exists(MapQueryParameter::class)) { - self::markTestSkipped('Symfony 6.3 MapQueryParameter attribute not found'); - } - - self::assertEquals([ - 'operationId' => 'get_api_nelmio_apidoc_tests_functional_api_fetcharticlefrommapqueryparameteroverwriteparameters', - 'parameters' => [ - [ - 'name' => 'id', - 'in' => 'query', - 'required' => false, - 'schema' => [ - 'type' => 'integer', - 'nullable' => true, - ], - 'description' => 'Query parameter id description', - 'example' => 123, - ], - [ - 'name' => 'changedType', - 'in' => 'query', - 'required' => false, - 'schema' => [ - 'type' => 'int', - 'nullable' => false, - ], - 'description' => 'Incorrectly described query parameter', - 'example' => 123, - ], - ], - 'responses' => [ - '200' => [ - 'description' => '', - ], - ], - ], json_decode($this->getOperation('/api/article_map_query_parameter_overwrite_parameters', 'get')->toJson(), true)); - } - - public function testMapQueryStringPassesValidationGroups(): void - { - if (!class_exists(MapQueryString::class)) { - self::markTestSkipped('Symfony 6.3 MapQueryString attribute not found'); - } - - self::assertEquals([ - 'operationId' => 'post_api_nelmio_apidoc_tests_functional_api_fetcharticlefrommapquerystringhandlesvalidationgroups', - 'responses' => [ - '200' => [ - 'description' => '', - ], - ], - 'parameters' => [ - [ - 'name' => 'property', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'integer', - 'maximum' => 100, - 'minimum' => 1, - ], - ], - ], - ], json_decode($this->getOperation('/api/article_map_query_string_passes_validation_groups', 'post')->toJson(), true)); - } - - public function testMapQueryStringHandlesManyParameters(): void - { - if (!class_exists(MapQueryString::class)) { - self::markTestSkipped('Symfony 6.3 MapQueryString attribute not found'); - } - - self::assertEquals([ - [ - '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', - 'required' => false, - 'description' => 'List of product ids', - 'schema' => [ - 'type' => 'array', - 'description' => 'List of product ids', - 'items' => [ - 'type' => 'integer', - ], - ], - ], - ], json_decode($this->getOperation('/api/article_map_query_string_many_parameters', 'get')->toJson(), true)['parameters']); - } - - public function testMapQueryStringHandlesManyParametersOptional(): void - { - if (!class_exists(MapQueryString::class)) { - self::markTestSkipped('Symfony 6.3 MapQueryString attribute not found'); - } - - self::assertEquals([ - [ - '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', - 'required' => false, - 'description' => 'List of product ids', - 'schema' => [ - 'type' => 'array', - 'description' => 'List of product ids', - 'items' => [ - 'type' => 'integer', - ], - ], - ], - ], json_decode($this->getOperation('/api/article_map_query_string_many_parameters_optional', 'get')->toJson(), true)['parameters']); - } - - public function testMapQueryParameterHandlesValidateFilters(): void - { - if (!class_exists(MapQueryParameter::class)) { - self::markTestSkipped('Symfony 6.3 MapQueryParameter attribute not found'); - } - - self::assertEquals([ - [ - 'name' => 'minMaxInt', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'integer', - 'minimum' => 2, - 'maximum' => 1234, - ], - ], - [ - 'name' => 'domain', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'string', - 'format' => 'hostname', - ], - ], - [ - 'name' => 'email', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'string', - 'format' => 'email', - ], - ], - [ - 'name' => 'ip', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'string', - 'format' => 'ip', - ], - ], - [ - 'name' => 'ipv4', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'string', - 'format' => 'ipv4', - ], - ], - [ - 'name' => 'ipv6', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'string', - 'format' => 'ipv6', - ], - ], - [ - 'name' => 'macAddress', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'string', - 'format' => 'mac', - ], - ], - [ - 'name' => 'regexp', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'string', - 'pattern' => '/^test/', - ], - ], - [ - 'name' => 'url', - 'in' => 'query', - 'required' => true, - 'schema' => [ - 'type' => 'string', - 'format' => 'uri', - ], - ], - ], json_decode($this->getOperation('/api/article_map_query_parameter_validate_filters', 'get')->toJson(), true)['parameters']); - } -} From 3240222d762a90dbfee1f75fd47378e96f089afc Mon Sep 17 00:00:00 2001 From: djordy Date: Wed, 19 Jun 2024 16:34:22 +0200 Subject: [PATCH 11/11] add methods param to route for smaller fixture size --- .../MapQueryParameterController.php | 10 +- .../Controller/MapQueryStringController.php | 10 +- .../Fixtures/MapQueryParameterController.json | 1574 +----------- .../MapQueryStringCleanupComponents.json | 2146 +---------------- .../Fixtures/MapQueryStringController.json | 2146 +---------------- 5 files changed, 122 insertions(+), 5764 deletions(-) diff --git a/tests/Functional/Controller/MapQueryParameterController.php b/tests/Functional/Controller/MapQueryParameterController.php index 6a1384901..da4ec9653 100644 --- a/tests/Functional/Controller/MapQueryParameterController.php +++ b/tests/Functional/Controller/MapQueryParameterController.php @@ -16,7 +16,7 @@ class MapQueryParameterController { - #[Route('/article_map_query_parameter')] + #[Route('/article_map_query_parameter', methods: ['GET'])] #[OA\Response(response: '200', description: '')] public function fetchArticleFromMapQueryParameter( #[MapQueryParameter] int $someInt, @@ -27,7 +27,7 @@ public function fetchArticleFromMapQueryParameter( ) { } - #[Route('/article_map_query_parameter_validate_filters')] + #[Route('/article_map_query_parameter_validate_filters', methods: ['GET'])] #[OA\Response(response: '200', description: '')] public function fetchArticleFromMapQueryParameterValidateFilters( #[MapQueryParameter(options: ['min_range' => 2, 'max_range' => 1234])] int $minMaxInt, @@ -42,21 +42,21 @@ public function fetchArticleFromMapQueryParameterValidateFilters( ) { } - #[Route('/article_map_query_parameter_nullable')] + #[Route('/article_map_query_parameter_nullable', methods: ['GET'])] #[OA\Response(response: '200', description: '')] public function fetchArticleFromMapQueryParameterNullable( #[MapQueryParameter] ?int $id, ) { } - #[Route('/article_map_query_parameter_default')] + #[Route('/article_map_query_parameter_default', methods: ['GET'])] #[OA\Response(response: '200', description: '')] public function fetchArticleFromMapQueryParameterDefault( #[MapQueryParameter] int $id = 123, ) { } - #[Route('/article_map_query_parameter_overwrite_parameters')] + #[Route('/article_map_query_parameter_overwrite_parameters', methods: ['GET'])] #[OA\Parameter( name: 'id', in: 'query', diff --git a/tests/Functional/Controller/MapQueryStringController.php b/tests/Functional/Controller/MapQueryStringController.php index a286cbd23..e08fe8c50 100644 --- a/tests/Functional/Controller/MapQueryStringController.php +++ b/tests/Functional/Controller/MapQueryStringController.php @@ -24,28 +24,28 @@ class MapQueryStringController { - #[Route('/article_map_query_string')] + #[Route('/article_map_query_string', methods: ['GET'])] #[OA\Response(response: '200', description: '')] public function fetchArticleFromMapQueryString( #[MapQueryString] SymfonyMapQueryString $article81Query ) { } - #[Route('/article_map_query_string_nullable')] + #[Route('/article_map_query_string_nullable', methods: ['GET'])] #[OA\Response(response: '200', description: '')] public function fetchArticleFromMapQueryStringNullable( #[MapQueryString] ?SymfonyMapQueryString $article81Query ) { } - #[Route('/article_map_query_string_passes_validation_groups')] + #[Route('/article_map_query_string_passes_validation_groups', methods: ['GET'])] #[OA\Response(response: '200', description: '')] public function fetchArticleFromMapQueryStringHandlesValidationGroups( #[MapQueryString(validationGroups: ['test'])] SymfonyConstraintsWithValidationGroups $symfonyConstraintsWithValidationGroups, ) { } - #[Route('/article_map_query_string_overwrite_parameters')] + #[Route('/article_map_query_string_overwrite_parameters', methods: ['GET'])] #[OA\Parameter( name: 'id', in: 'query', @@ -78,7 +78,7 @@ public function fetchArticleFromMapQueryStringOverwriteParameters( ) { } - #[Route('/article_map_query_string_many_parameters')] + #[Route('/article_map_query_string_many_parameters', methods: ['GET'])] #[OA\Response(response: '200', description: '')] public function fetchArticleWithManyParameters( #[MapQueryString] FilterQueryModel $filterQuery, diff --git a/tests/Functional/Fixtures/MapQueryParameterController.json b/tests/Functional/Fixtures/MapQueryParameterController.json index 773d9c222..9d626a46a 100644 --- a/tests/Functional/Fixtures/MapQueryParameterController.json +++ b/tests/Functional/Fixtures/MapQueryParameterController.json @@ -57,1550 +57,92 @@ "description": "" } } - }, - "put": { - "operationId": "put_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameter", - "parameters": [ - { - "name": "someInt", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "someFloat", - "in": "query", - "required": true, - "schema": { - "type": "number", - "format": "float" - } - }, - { - "name": "someBool", - "in": "query", - "required": true, - "schema": { - "type": "boolean" - } - }, - { - "name": "someString", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "someArray[]", - "in": "query", - "required": true, - "schema": { - "type": "array", - "items": {} - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "post": { - "operationId": "post_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameter", - "parameters": [ - { - "name": "someInt", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "someFloat", - "in": "query", - "required": true, - "schema": { - "type": "number", - "format": "float" - } - }, - { - "name": "someBool", - "in": "query", - "required": true, - "schema": { - "type": "boolean" - } - }, - { - "name": "someString", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "someArray[]", - "in": "query", - "required": true, - "schema": { - "type": "array", - "items": {} - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "delete": { - "operationId": "delete_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameter", - "parameters": [ - { - "name": "someInt", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "someFloat", - "in": "query", - "required": true, - "schema": { - "type": "number", - "format": "float" - } - }, - { - "name": "someBool", - "in": "query", - "required": true, - "schema": { - "type": "boolean" - } - }, - { - "name": "someString", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "someArray[]", - "in": "query", - "required": true, - "schema": { - "type": "array", - "items": {} - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "options": { - "operationId": "options_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameter", - "parameters": [ - { - "name": "someInt", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "someFloat", - "in": "query", - "required": true, - "schema": { - "type": "number", - "format": "float" - } - }, - { - "name": "someBool", - "in": "query", - "required": true, - "schema": { - "type": "boolean" - } - }, - { - "name": "someString", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "someArray[]", - "in": "query", - "required": true, - "schema": { - "type": "array", - "items": {} - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "head": { - "operationId": "head_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameter", - "parameters": [ - { - "name": "someInt", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "someFloat", - "in": "query", - "required": true, - "schema": { - "type": "number", - "format": "float" - } - }, - { - "name": "someBool", - "in": "query", - "required": true, - "schema": { - "type": "boolean" - } - }, - { - "name": "someString", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "someArray[]", - "in": "query", - "required": true, - "schema": { - "type": "array", - "items": {} - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "patch": { - "operationId": "patch_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameter", - "parameters": [ - { - "name": "someInt", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "someFloat", - "in": "query", - "required": true, - "schema": { - "type": "number", - "format": "float" - } - }, - { - "name": "someBool", - "in": "query", - "required": true, - "schema": { - "type": "boolean" - } - }, - { - "name": "someString", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "someArray[]", - "in": "query", - "required": true, - "schema": { - "type": "array", - "items": {} - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "trace": { - "operationId": "trace_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameter", - "parameters": [ - { - "name": "someInt", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "someFloat", - "in": "query", - "required": true, - "schema": { - "type": "number", - "format": "float" - } - }, - { - "name": "someBool", - "in": "query", - "required": true, - "schema": { - "type": "boolean" - } - }, - { - "name": "someString", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "someArray[]", - "in": "query", - "required": true, - "schema": { - "type": "array", - "items": {} - } - } - ], - "responses": { - "default": { - "description": "" - } - } - } - }, - "/article_map_query_parameter_validate_filters": { - "get": { - "operationId": "get_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", - "parameters": [ - { - "name": "minMaxInt", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "maximum": 1234, - "minimum": 2 - } - }, - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "hostname" - } - }, - { - "name": "email", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "email" - } - }, - { - "name": "ip", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ip" - } - }, - { - "name": "ipv4", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ipv4" - } - }, - { - "name": "ipv6", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ipv6" - } - }, - { - "name": "macAddress", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "mac" - } - }, - { - "name": "regexp", - "in": "query", - "required": true, - "schema": { - "type": "string", - "pattern": "/^test/" - } - }, - { - "name": "url", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "uri" - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "put": { - "operationId": "put_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", - "parameters": [ - { - "name": "minMaxInt", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "maximum": 1234, - "minimum": 2 - } - }, - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "hostname" - } - }, - { - "name": "email", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "email" - } - }, - { - "name": "ip", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ip" - } - }, - { - "name": "ipv4", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ipv4" - } - }, - { - "name": "ipv6", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ipv6" - } - }, - { - "name": "macAddress", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "mac" - } - }, - { - "name": "regexp", - "in": "query", - "required": true, - "schema": { - "type": "string", - "pattern": "/^test/" - } - }, - { - "name": "url", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "uri" - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "post": { - "operationId": "post_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", - "parameters": [ - { - "name": "minMaxInt", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "maximum": 1234, - "minimum": 2 - } - }, - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "hostname" - } - }, - { - "name": "email", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "email" - } - }, - { - "name": "ip", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ip" - } - }, - { - "name": "ipv4", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ipv4" - } - }, - { - "name": "ipv6", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ipv6" - } - }, - { - "name": "macAddress", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "mac" - } - }, - { - "name": "regexp", - "in": "query", - "required": true, - "schema": { - "type": "string", - "pattern": "/^test/" - } - }, - { - "name": "url", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "uri" - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "delete": { - "operationId": "delete_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", - "parameters": [ - { - "name": "minMaxInt", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "maximum": 1234, - "minimum": 2 - } - }, - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "hostname" - } - }, - { - "name": "email", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "email" - } - }, - { - "name": "ip", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ip" - } - }, - { - "name": "ipv4", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ipv4" - } - }, - { - "name": "ipv6", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ipv6" - } - }, - { - "name": "macAddress", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "mac" - } - }, - { - "name": "regexp", - "in": "query", - "required": true, - "schema": { - "type": "string", - "pattern": "/^test/" - } - }, - { - "name": "url", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "uri" - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "options": { - "operationId": "options_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", - "parameters": [ - { - "name": "minMaxInt", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "maximum": 1234, - "minimum": 2 - } - }, - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "hostname" - } - }, - { - "name": "email", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "email" - } - }, - { - "name": "ip", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ip" - } - }, - { - "name": "ipv4", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ipv4" - } - }, - { - "name": "ipv6", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ipv6" - } - }, - { - "name": "macAddress", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "mac" - } - }, - { - "name": "regexp", - "in": "query", - "required": true, - "schema": { - "type": "string", - "pattern": "/^test/" - } - }, - { - "name": "url", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "uri" - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "head": { - "operationId": "head_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", - "parameters": [ - { - "name": "minMaxInt", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "maximum": 1234, - "minimum": 2 - } - }, - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "hostname" - } - }, - { - "name": "email", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "email" - } - }, - { - "name": "ip", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ip" - } - }, - { - "name": "ipv4", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ipv4" - } - }, - { - "name": "ipv6", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ipv6" - } - }, - { - "name": "macAddress", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "mac" - } - }, - { - "name": "regexp", - "in": "query", - "required": true, - "schema": { - "type": "string", - "pattern": "/^test/" - } - }, - { - "name": "url", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "uri" - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "patch": { - "operationId": "patch_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", - "parameters": [ - { - "name": "minMaxInt", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "maximum": 1234, - "minimum": 2 - } - }, - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "hostname" - } - }, - { - "name": "email", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "email" - } - }, - { - "name": "ip", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ip" - } - }, - { - "name": "ipv4", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ipv4" - } - }, - { - "name": "ipv6", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ipv6" - } - }, - { - "name": "macAddress", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "mac" - } - }, - { - "name": "regexp", - "in": "query", - "required": true, - "schema": { - "type": "string", - "pattern": "/^test/" - } - }, - { - "name": "url", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "uri" - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "trace": { - "operationId": "trace_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", - "parameters": [ - { - "name": "minMaxInt", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "maximum": 1234, - "minimum": 2 - } - }, - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "hostname" - } - }, - { - "name": "email", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "email" - } - }, - { - "name": "ip", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ip" - } - }, - { - "name": "ipv4", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ipv4" - } - }, - { - "name": "ipv6", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "ipv6" - } - }, - { - "name": "macAddress", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "mac" - } - }, - { - "name": "regexp", - "in": "query", - "required": true, - "schema": { - "type": "string", - "pattern": "/^test/" - } - }, - { - "name": "url", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "uri" - } - } - ], - "responses": { - "default": { - "description": "" - } - } - } - }, - "/article_map_query_parameter_nullable": { - "get": { - "operationId": "get_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "nullable": true - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "put": { - "operationId": "put_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "nullable": true - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "post": { - "operationId": "post_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "nullable": true - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "delete": { - "operationId": "delete_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "nullable": true - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "options": { - "operationId": "options_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "nullable": true - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "head": { - "operationId": "head_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "nullable": true - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "patch": { - "operationId": "patch_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "nullable": true - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "trace": { - "operationId": "trace_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "nullable": true - } - } - ], - "responses": { - "default": { - "description": "" - } - } - } - }, - "/article_map_query_parameter_default": { - "get": { - "operationId": "get_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 123 - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "put": { - "operationId": "put_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 123 - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "post": { - "operationId": "post_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 123 - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "delete": { - "operationId": "delete_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 123 - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "options": { - "operationId": "options_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 123 - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "head": { - "operationId": "head_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 123 - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "patch": { - "operationId": "patch_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 123 - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "trace": { - "operationId": "trace_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 123 - } - } - ], - "responses": { - "default": { - "description": "" - } - } } }, - "/article_map_query_parameter_overwrite_parameters": { + "/article_map_query_parameter_validate_filters": { "get": { - "operationId": "get_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", + "operationId": "get_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparametervalidatefilters", "parameters": [ { - "name": "id", + "name": "minMaxInt", "in": "query", - "required": false, + "required": true, "schema": { "type": "integer", - "nullable": true + "maximum": 1234, + "minimum": 2 } }, { - "name": "changedType", + "name": "domain", "in": "query", - "required": false, + "required": true, "schema": { "type": "string", - "nullable": true - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "put": { - "operationId": "put_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "nullable": true + "format": "hostname" } }, { - "name": "changedType", + "name": "email", "in": "query", - "required": false, + "required": true, "schema": { "type": "string", - "nullable": true + "format": "email" } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "post": { - "operationId": "post_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", - "parameters": [ + }, { - "name": "id", + "name": "ip", "in": "query", - "required": false, + "required": true, "schema": { - "type": "integer", - "nullable": true + "type": "string", + "format": "ip" } }, { - "name": "changedType", + "name": "ipv4", "in": "query", - "required": false, + "required": true, "schema": { "type": "string", - "nullable": true + "format": "ipv4" } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "delete": { - "operationId": "delete_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", - "parameters": [ + }, { - "name": "id", + "name": "ipv6", "in": "query", - "required": false, + "required": true, "schema": { - "type": "integer", - "nullable": true + "type": "string", + "format": "ipv6" } }, { - "name": "changedType", + "name": "macAddress", "in": "query", - "required": false, + "required": true, "schema": { "type": "string", - "nullable": true + "format": "mac" } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "options": { - "operationId": "options_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", - "parameters": [ + }, { - "name": "id", + "name": "regexp", "in": "query", - "required": false, + "required": true, "schema": { - "type": "integer", - "nullable": true + "type": "string", + "pattern": "/^test/" } }, { - "name": "changedType", + "name": "url", "in": "query", - "required": false, + "required": true, "schema": { "type": "string", - "nullable": true + "format": "uri" } } ], @@ -1609,9 +151,11 @@ "description": "" } } - }, - "head": { - "operationId": "head_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", + } + }, + "/article_map_query_parameter_nullable": { + "get": { + "operationId": "get_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameternullable", "parameters": [ { "name": "id", @@ -1621,15 +165,6 @@ "type": "integer", "nullable": true } - }, - { - "name": "changedType", - "in": "query", - "required": false, - "schema": { - "type": "string", - "nullable": true - } } ], "responses": { @@ -1637,9 +172,11 @@ "description": "" } } - }, - "patch": { - "operationId": "patch_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", + } + }, + "/article_map_query_parameter_default": { + "get": { + "operationId": "get_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameterdefault", "parameters": [ { "name": "id", @@ -1647,16 +184,7 @@ "required": false, "schema": { "type": "integer", - "nullable": true - } - }, - { - "name": "changedType", - "in": "query", - "required": false, - "schema": { - "type": "string", - "nullable": true + "default": 123 } } ], @@ -1665,9 +193,11 @@ "description": "" } } - }, - "trace": { - "operationId": "trace_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", + } + }, + "/article_map_query_parameter_overwrite_parameters": { + "get": { + "operationId": "get_nelmio_apidoc_tests_functional_mapqueryparameter_fetcharticlefrommapqueryparameteroverwriteparameters", "parameters": [ { "name": "id", diff --git a/tests/Functional/Fixtures/MapQueryStringCleanupComponents.json b/tests/Functional/Fixtures/MapQueryStringCleanupComponents.json index 50216f72b..dd8152e8d 100644 --- a/tests/Functional/Fixtures/MapQueryStringCleanupComponents.json +++ b/tests/Functional/Fixtures/MapQueryStringCleanupComponents.json @@ -61,70 +61,16 @@ "description": "" } } - }, - "put": { - "operationId": "put_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystring", + } + }, + "/article_map_query_string_nullable": { + "get": { + "operationId": "get_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "post": { - "operationId": "post_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystring", - "parameters": [ - { - "name": "id", - "in": "query", - "required": true, "schema": { "type": "integer" } @@ -132,63 +78,7 @@ { "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "delete": { - "operationId": "delete_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystring", - "parameters": [ - { - "name": "id", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "name", - "in": "query", - "required": true, "schema": { "type": "string" } @@ -205,63 +95,7 @@ { "name": "articleType81", "in": "query", - "required": true, - "schema": { - "$ref": "#/components/schemas/ArticleType81" - } - }, - { - "name": "nullableArticleType81", - "in": "query", - "required": false, - "schema": { - "nullable": true, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "options": { - "operationId": "options_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystring", - "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" } @@ -285,54 +119,41 @@ "description": "" } } - }, - "head": { - "operationId": "head_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystring", + } + }, + "/article_map_query_string_passes_validation_groups": { + "get": { + "operationId": "get_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", "parameters": [ { - "name": "id", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "name", + "name": "property", "in": "query", "required": true, "schema": { - "type": "string" - } - }, - { - "name": "nullableName", - "in": "query", - "required": false, - "schema": { - "type": "string", - "nullable": true + "type": "integer", + "maximum": 100, + "minimum": 1 } }, { - "name": "articleType81", + "name": "propertyInDefaultGroup", "in": "query", "required": true, "schema": { - "$ref": "#/components/schemas/ArticleType81" + "type": "integer", + "maximum": 100, + "minimum": 1 } }, { - "name": "nullableArticleType81", + "name": "propertyArray[]", "in": "query", "required": false, "schema": { - "nullable": true, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] + "type": "array", + "items": { + "type": "string" + } } } ], @@ -341,65 +162,11 @@ "description": "" } } - }, - "patch": { - "operationId": "patch_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystring", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "trace": { - "operationId": "trace_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystring", + } + }, + "/article_map_query_string_overwrite_parameters": { + "get": { + "operationId": "get_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", "parameters": [ { "name": "id", @@ -455,1862 +222,9 @@ } } }, - "/article_map_query_string_nullable": { + "/article_map_query_string_many_parameters": { "get": { - "operationId": "get_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "put": { - "operationId": "put_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "post": { - "operationId": "post_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "delete": { - "operationId": "delete_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "options": { - "operationId": "options_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "head": { - "operationId": "head_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "patch": { - "operationId": "patch_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "trace": { - "operationId": "trace_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - } - }, - "/article_map_query_string_passes_validation_groups": { - "get": { - "operationId": "get_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", - "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": { - "operationId": "put_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", - "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": { - "operationId": "post_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", - "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": { - "operationId": "delete_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", - "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": { - "operationId": "options_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", - "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": { - "operationId": "head_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", - "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": { - "operationId": "patch_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", - "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": { - "operationId": "trace_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", - "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": { - "operationId": "get_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "put": { - "operationId": "put_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "post": { - "operationId": "post_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "delete": { - "operationId": "delete_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "options": { - "operationId": "options_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "head": { - "operationId": "head_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "patch": { - "operationId": "patch_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "trace": { - "operationId": "trace_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - } - }, - "/article_map_query_string_many_parameters": { - "get": { - "operationId": "get_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", - "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": { - "operationId": "put_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", - "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": { - "operationId": "post_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", - "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": { - "operationId": "delete_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", - "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": { - "operationId": "options_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", - "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": { - "operationId": "head_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", - "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": { - "operationId": "patch_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", - "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": { - "operationId": "trace_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", + "operationId": "get_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", "parameters": [ { "name": "filter", diff --git a/tests/Functional/Fixtures/MapQueryStringController.json b/tests/Functional/Fixtures/MapQueryStringController.json index 082767c50..2dae21ab6 100644 --- a/tests/Functional/Fixtures/MapQueryStringController.json +++ b/tests/Functional/Fixtures/MapQueryStringController.json @@ -61,70 +61,16 @@ "description": "" } } - }, - "put": { - "operationId": "put_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystring", + } + }, + "/article_map_query_string_nullable": { + "get": { + "operationId": "get_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "post": { - "operationId": "post_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystring", - "parameters": [ - { - "name": "id", - "in": "query", - "required": true, "schema": { "type": "integer" } @@ -132,63 +78,7 @@ { "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "delete": { - "operationId": "delete_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystring", - "parameters": [ - { - "name": "id", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "name", - "in": "query", - "required": true, "schema": { "type": "string" } @@ -205,63 +95,7 @@ { "name": "articleType81", "in": "query", - "required": true, - "schema": { - "$ref": "#/components/schemas/ArticleType81" - } - }, - { - "name": "nullableArticleType81", - "in": "query", - "required": false, - "schema": { - "nullable": true, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "options": { - "operationId": "options_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystring", - "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" } @@ -285,54 +119,41 @@ "description": "" } } - }, - "head": { - "operationId": "head_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystring", + } + }, + "/article_map_query_string_passes_validation_groups": { + "get": { + "operationId": "get_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", "parameters": [ { - "name": "id", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "name", + "name": "property", "in": "query", "required": true, "schema": { - "type": "string" - } - }, - { - "name": "nullableName", - "in": "query", - "required": false, - "schema": { - "type": "string", - "nullable": true + "type": "integer", + "maximum": 100, + "minimum": 1 } }, { - "name": "articleType81", + "name": "propertyInDefaultGroup", "in": "query", "required": true, "schema": { - "$ref": "#/components/schemas/ArticleType81" + "type": "integer", + "maximum": 100, + "minimum": 1 } }, { - "name": "nullableArticleType81", + "name": "propertyArray[]", "in": "query", "required": false, "schema": { - "nullable": true, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] + "type": "array", + "items": { + "type": "string" + } } } ], @@ -341,65 +162,11 @@ "description": "" } } - }, - "patch": { - "operationId": "patch_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystring", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "trace": { - "operationId": "trace_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystring", + } + }, + "/article_map_query_string_overwrite_parameters": { + "get": { + "operationId": "get_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", "parameters": [ { "name": "id", @@ -455,1862 +222,9 @@ } } }, - "/article_map_query_string_nullable": { + "/article_map_query_string_many_parameters": { "get": { - "operationId": "get_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "put": { - "operationId": "put_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "post": { - "operationId": "post_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "delete": { - "operationId": "delete_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "options": { - "operationId": "options_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "head": { - "operationId": "head_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "patch": { - "operationId": "patch_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "trace": { - "operationId": "trace_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringnullable", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - } - }, - "/article_map_query_string_passes_validation_groups": { - "get": { - "operationId": "get_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", - "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": { - "operationId": "put_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", - "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": { - "operationId": "post_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", - "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": { - "operationId": "delete_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", - "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": { - "operationId": "options_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", - "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": { - "operationId": "head_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", - "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": { - "operationId": "patch_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", - "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": { - "operationId": "trace_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringhandlesvalidationgroups", - "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": { - "operationId": "get_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "put": { - "operationId": "put_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "post": { - "operationId": "post_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "delete": { - "operationId": "delete_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "options": { - "operationId": "options_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "head": { - "operationId": "head_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "patch": { - "operationId": "patch_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - }, - "trace": { - "operationId": "trace_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlefrommapquerystringoverwriteparameters", - "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, - "oneOf": [ - { - "$ref": "#/components/schemas/ArticleType81" - } - ] - } - } - ], - "responses": { - "default": { - "description": "" - } - } - } - }, - "/article_map_query_string_many_parameters": { - "get": { - "operationId": "get_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", - "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": { - "operationId": "put_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", - "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": { - "operationId": "post_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", - "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": { - "operationId": "delete_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", - "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": { - "operationId": "options_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", - "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": { - "operationId": "head_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", - "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": { - "operationId": "patch_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", - "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": { - "operationId": "trace_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", + "operationId": "get_nelmio_apidoc_tests_functional_mapquerystring_fetcharticlewithmanyparameters", "parameters": [ { "name": "filter",