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)); }