diff --git a/Extractor/ApiDocExtractor.php b/Extractor/ApiDocExtractor.php index 904dc9005..6d9168e46 100644 --- a/Extractor/ApiDocExtractor.php +++ b/Extractor/ApiDocExtractor.php @@ -322,8 +322,8 @@ protected function extractData(ApiDoc $annotation, Route $route, \ReflectionMeth $parameters = $this->clearClasses($parameters); $parameters = $this->generateHumanReadableTypes($parameters); - if ('PUT' === $annotation->getMethod()) { - // All parameters are optional with PUT (update) + if ('PATCH' === $annotation->getMethod()) { + // All parameters are optional with PATCH (update) array_walk($parameters, function ($val, $key) use (&$parameters) { $parameters[$key]['required'] = false; }); diff --git a/Tests/Extractor/ApiDocExtractorTest.php b/Tests/Extractor/ApiDocExtractorTest.php index 15337a646..fae014630 100644 --- a/Tests/Extractor/ApiDocExtractorTest.php +++ b/Tests/Extractor/ApiDocExtractorTest.php @@ -286,13 +286,13 @@ public function testPostRequestDoesRequireParametersWhenMarkedAsSuch() $this->assertTrue($parameters['required_field']['required']); } - public function testPutRequestDoesNeverRequireParameters() + public function testPatchRequestDoesNeverRequireParameters() { $container = $this->getContainer(); /** @var ApiDocExtractor $extractor */ $extractor = $container->get('nelmio_api_doc.extractor.api_doc_extractor'); /** @var ApiDoc $annotation */ - $annotation = $extractor->get('Nelmio\ApiDocBundle\Tests\Fixtures\Controller\TestController::requiredParametersAction', 'test_put_disables_required_parameters'); + $annotation = $extractor->get('Nelmio\ApiDocBundle\Tests\Fixtures\Controller\TestController::requiredParametersAction', 'test_patch_disables_required_parameters'); $parameters = $annotation->getParameters(); $this->assertFalse($parameters['required_field']['required']); diff --git a/Tests/Fixtures/app/config/routing.yml b/Tests/Fixtures/app/config/routing.yml index fe077c0d0..672269989 100644 --- a/Tests/Fixtures/app/config/routing.yml +++ b/Tests/Fixtures/app/config/routing.yml @@ -209,9 +209,9 @@ test_required_parameters: requirements: _format: json|xml|html -test_put_disables_required_parameters: +test_patch_disables_required_parameters: path: /api/other-resources/{id}.{_format} - methods: [PUT] + methods: [PATCH] defaults: { _controller: NelmioApiDocTestBundle:Resource:requiredParametersAction, _format: json } requirements: _format: json|xml|html