From 253e71a46ed8c73c5048e9be41b409017df8ae56 Mon Sep 17 00:00:00 2001 From: Ayrton Ricardo Date: Wed, 10 Apr 2019 20:55:04 +0200 Subject: [PATCH] Provide default host to generated .json documentation (#1492) * Add default host to the current request host to keep the same behaviour as js does * Add host to test case * Revert deleted code * Revert not needed update on expected result --- Controller/DocumentationController.php | 5 +++++ Tests/Functional/SwaggerUiTest.php | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Controller/DocumentationController.php b/Controller/DocumentationController.php index 2bc0915..453c2e2 100644 --- a/Controller/DocumentationController.php +++ b/Controller/DocumentationController.php @@ -48,10 +48,15 @@ final class DocumentationController } $spec = $this->generatorLocator->get($area)->generate()->toArray(); + if ('' !== $request->getBaseUrl()) { $spec['basePath'] = $request->getBaseUrl(); } + if (empty($spec['host'])) { + $spec['host'] = $request->getHost(); + } + return new JsonResponse($spec); } } diff --git a/Tests/Functional/SwaggerUiTest.php b/Tests/Functional/SwaggerUiTest.php index 67f97a9..4d958e4 100644 --- a/Tests/Functional/SwaggerUiTest.php +++ b/Tests/Functional/SwaggerUiTest.php @@ -58,7 +58,7 @@ class SwaggerUiTest extends WebTestCase public function testJsonDocs() { $client = self::createClient(); - $crawler = $client->request('GET', '/app_dev.php/docs.json'); + $client->request('GET', '/app_dev.php/docs.json'); $response = $client->getResponse(); $this->assertEquals(200, $response->getStatusCode()); @@ -66,6 +66,7 @@ class SwaggerUiTest extends WebTestCase $expected = $this->getSwaggerDefinition()->toArray(); $expected['basePath'] = '/app_dev.php'; + $expected['host'] = 'api.example.com'; $this->assertEquals($expected, json_decode($response->getContent(), true)); }