Fix docs when using FOSRestBundle format listener

This commit is contained in:
Guilhem Niot 2017-06-20 20:49:50 +02:00
parent 9c0db1ea51
commit 91e8af5406
3 changed files with 19 additions and 1 deletions

View File

@ -27,6 +27,10 @@ final class SwaggerUiController
public function __invoke() public function __invoke()
{ {
return new Response($this->twig->render('@NelmioApiDoc/SwaggerUi/index.html.twig', ['swagger_data' => ['spec' => $this->apiDocGenerator->generate()->toArray()]])); return new Response(
$this->twig->render('@NelmioApiDoc/SwaggerUi/index.html.twig', ['swagger_data' => ['spec' => $this->apiDocGenerator->generate()->toArray()]]),
Response::HTTP_OK,
['Content-Type' => 'text/html']
);
} }
} }

View File

@ -20,6 +20,7 @@ class SwaggerUiTest extends WebTestCase
$response = $client->getResponse(); $response = $client->getResponse();
$this->assertEquals(200, $response->getStatusCode()); $this->assertEquals(200, $response->getStatusCode());
$this->assertEquals('text/html; charset=UTF-8', $response->headers->get('Content-Type'));
$swaggerUiSpec = json_decode($crawler->filterXPath('//script[@id="swagger-data"]')->text(), true); $swaggerUiSpec = json_decode($crawler->filterXPath('//script[@id="swagger-data"]')->text(), true);
$appSpec = $client->getContainer()->get('nelmio_api_doc.generator')->generate()->toArray(); $appSpec = $client->getContainer()->get('nelmio_api_doc.generator')->generate()->toArray();

View File

@ -12,6 +12,7 @@
namespace Nelmio\ApiDocBundle\Tests\Functional; namespace Nelmio\ApiDocBundle\Tests\Functional;
use ApiPlatform\Core\Bridge\Symfony\Bundle\ApiPlatformBundle; use ApiPlatform\Core\Bridge\Symfony\Bundle\ApiPlatformBundle;
use FOS\RestBundle\FOSRestBundle;
use Nelmio\ApiDocBundle\NelmioApiDocBundle; use Nelmio\ApiDocBundle\NelmioApiDocBundle;
use Nelmio\ApiDocBundle\Tests\Functional\TestBundle; use Nelmio\ApiDocBundle\Tests\Functional\TestBundle;
use Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle; use Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle;
@ -38,6 +39,7 @@ class TestKernel extends Kernel
new SensioFrameworkExtraBundle(), new SensioFrameworkExtraBundle(),
new ApiPlatformBundle(), new ApiPlatformBundle(),
new NelmioApiDocBundle(), new NelmioApiDocBundle(),
new FOSRestBundle(),
new TestBundle(), new TestBundle(),
]; ];
} }
@ -67,6 +69,17 @@ class TestKernel extends Kernel
'serializer' => ['enable_annotations' => true], 'serializer' => ['enable_annotations' => true],
]); ]);
$c->loadFromExtension('fos_rest', [
'format_listener' => [
'rules' => [
[
'path' => '^/',
'fallback_format' => 'json',
]
],
],
]);
// Filter routes // Filter routes
$c->loadFromExtension('nelmio_api_doc', [ $c->loadFromExtension('nelmio_api_doc', [
'documentation' => [ 'documentation' => [