diff --git a/src/State/Provider/ReadProvider.php b/src/State/Provider/ReadProvider.php index b4ef0b6060d..d9c92794251 100644 --- a/src/State/Provider/ReadProvider.php +++ b/src/State/Provider/ReadProvider.php @@ -53,13 +53,6 @@ public function provide(Operation $operation, array $uriVariables = [], array $c return null; } - $output = $operation->getOutput() ?? []; - if (\array_key_exists('class', $output) && null === $output['class']) { - $request?->attributes->set('data', null); - - return null; - } - if (null === $filters = $request?->attributes->get('_api_filters')) { $queryString = RequestParser::getQueryString($request); $filters = $queryString ? RequestParser::parseRequestParams($queryString) : null; diff --git a/src/State/Tests/Provider/ReadProviderTest.php b/src/State/Tests/Provider/ReadProviderTest.php index 18fb3cdb032..0823819feca 100644 --- a/src/State/Tests/Provider/ReadProviderTest.php +++ b/src/State/Tests/Provider/ReadProviderTest.php @@ -35,4 +35,18 @@ public function testSetsSerializerContext(): void $provider->provide($operation, ['id' => 1], ['request' => $request]); $this->assertEquals(['a'], $request->attributes->get('_api_normalization_context')); } + + public function testShouldReadWithOutputFalse(): void + { + $data = new \stdClass(); + $operation = new Get(read: true, output: false); + $decorated = $this->createStub(ProviderInterface::class); + $decorated->method('provide')->willReturn($data); + $serializerContextBuilder = $this->createMock(SerializerContextBuilderInterface::class); + $serializerContextBuilder->expects($this->once())->method('createFromRequest')->willReturn(['a']); + $provider = new ReadProvider($decorated, $serializerContextBuilder); + $request = new Request(); + $provider->provide($operation, ['id' => 1], ['request' => $request]); + $this->assertEquals($data, $request->attributes->get('data')); + } } diff --git a/tests/Fixtures/TestBundle/ApiResource/Headers.php b/tests/Fixtures/TestBundle/ApiResource/Headers.php index 93f216c71d9..f651e531dde 100644 --- a/tests/Fixtures/TestBundle/ApiResource/Headers.php +++ b/tests/Fixtures/TestBundle/ApiResource/Headers.php @@ -21,7 +21,7 @@ status: 301, output: false, operations: [ - new Get(uriTemplate: 'redirect_to_foobar'), + new Get(uriTemplate: 'redirect_to_foobar', read: false), ], graphQlOperations: [] )]