From 346235de97e985c10e6c5803ec5992fd2ca822f4 Mon Sep 17 00:00:00 2001 From: Ilia Burtsev Date: Tue, 2 Oct 2018 16:06:18 +0700 Subject: [PATCH] Add ability to use response objects which defined in configuration --- Describer/SwaggerPhpDescriber.php | 3 +++ Tests/Functional/Controller/ApiController.php | 4 ++++ Tests/Functional/FunctionalTest.php | 1 + Tests/Functional/TestKernel.php | 5 +++++ 4 files changed, 13 insertions(+) diff --git a/Describer/SwaggerPhpDescriber.php b/Describer/SwaggerPhpDescriber.php index b23fd8c..b6327df 100644 --- a/Describer/SwaggerPhpDescriber.php +++ b/Describer/SwaggerPhpDescriber.php @@ -87,6 +87,9 @@ final class SwaggerPhpDescriber implements ModelRegistryAwareInterface if (0 === strpos($ref, '#/parameters/') && isset($this->api->getParameters()[substr($ref, 13)])) { return; } + if (0 === strpos($ref, '#/responses/') && $this->api->getResponses()->has(substr($ref, 12))) { + return; + } parent::ref($ref); } diff --git a/Tests/Functional/Controller/ApiController.php b/Tests/Functional/Controller/ApiController.php index 5143f35..5e9a2db 100644 --- a/Tests/Functional/Controller/ApiController.php +++ b/Tests/Functional/Controller/ApiController.php @@ -191,6 +191,10 @@ class ApiController * description="Success", * @SWG\Schema(ref="#/definitions/Test") * ) + * @SWG\Response( + * response="201", + * ref="#/responses/201" + * ) * @Route("/configReference", methods={"GET"}) */ public function configReferenceAction() diff --git a/Tests/Functional/FunctionalTest.php b/Tests/Functional/FunctionalTest.php index dbd2012..a877824 100644 --- a/Tests/Functional/FunctionalTest.php +++ b/Tests/Functional/FunctionalTest.php @@ -387,6 +387,7 @@ class FunctionalTest extends WebTestCase { $operation = $this->getOperation('/api/configReference', 'get'); $this->assertEquals('#/definitions/Test', $operation->getResponses()->get('200')->getSchema()->getRef()); + $this->assertEquals('#/responses/201', $operation->getResponses()->get('201')->getRef()); } public function testOperationsWithOtherAnnotationsAction() diff --git a/Tests/Functional/TestKernel.php b/Tests/Functional/TestKernel.php index a2d9d65..9421368 100644 --- a/Tests/Functional/TestKernel.php +++ b/Tests/Functional/TestKernel.php @@ -133,6 +133,11 @@ class TestKernel extends Kernel 'required' => true, ], ], + 'responses' => [ + '201' => [ + 'description' => 'Awesome description', + ], + ], ], 'areas' => [ 'default' => ['path_patterns' => ['^/api(?!/admin)'], 'host_patterns' => ['^api\.']],