From b022f6b2196d4077d44754c1dfd5c2cd92e8ea44 Mon Sep 17 00:00:00 2001 From: Lucas dos Santos Abreu Date: Fri, 2 Oct 2020 13:52:30 -0300 Subject: [PATCH] (feat): add utf-8 charset to response `swagger-ui-bundle` is very sensible to encoding changes because of the RegExp performed. ensuring UTF-8 on the response prevents end-user config to break it. the annotations already needs to be UTF-8 compatible to generate the JSON, so it should not break users applications. --- Controller/SwaggerUiController.php | 4 +++- Tests/Functional/SwaggerUiTest.php | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Controller/SwaggerUiController.php b/Controller/SwaggerUiController.php index 8c88e3b..5fc979a 100644 --- a/Controller/SwaggerUiController.php +++ b/Controller/SwaggerUiController.php @@ -65,10 +65,12 @@ final class SwaggerUiController $spec['basePath'] = $request->getBaseUrl(); } - return new Response( + $response = new Response( $this->twig->render('@NelmioApiDoc/SwaggerUi/index.html.twig', ['swagger_data' => ['spec' => $spec]]), Response::HTTP_OK, ['Content-Type' => 'text/html'] ); + + return $response->setCharset('UTF-8'); } } diff --git a/Tests/Functional/SwaggerUiTest.php b/Tests/Functional/SwaggerUiTest.php index 0ed8ce5..0b32453 100644 --- a/Tests/Functional/SwaggerUiTest.php +++ b/Tests/Functional/SwaggerUiTest.php @@ -33,6 +33,7 @@ class SwaggerUiTest extends WebTestCase $response = $this->client->getResponse(); $this->assertEquals(200, $response->getStatusCode()); + $this->assertEquals('UTF-8', $response->getCharset()); $this->assertEquals('text/html; charset=UTF-8', $response->headers->get('Content-Type')); $expected = $this->getSwaggerDefinition()->toArray();