Loading core/modules/rest/src/EventSubscriber/ResourceResponseSubscriber.php +2 −3 Original line number Diff line number Diff line Loading @@ -122,7 +122,7 @@ public function getResponseFormat(RouteMatchInterface $route_match, Request $req return $acceptable_formats[0]; } // Sometimes, there are no acceptable formats, e.g. DELETE routes. // Sometimes, there are no acceptable formats. return NULL; } Loading @@ -141,8 +141,7 @@ public function getResponseFormat(RouteMatchInterface $route_match, Request $req * @param \Symfony\Component\Serializer\SerializerInterface $serializer * The serializer to use. * @param string|null $format * The response format, or NULL in case the response does not need a format, * for example for the response to a DELETE request. * The response format, or NULL in case the response does not need a format. * * @todo Add test coverage for language negotiation contexts in * https://www.drupal.org/node/2135829. Loading core/modules/rest/src/Routing/ResourceRoutes.php +1 −1 Original line number Diff line number Diff line Loading @@ -116,7 +116,7 @@ protected function getRoutesForResourceConfig(RestResourceConfigInterface $rest_ // - set the allowed request body content types/formats for methods that // allow request bodies to be sent (unless hardcoded by the plugin) // - set the allowed authentication providers if (in_array($method, ['GET', 'HEAD', 'POST', 'PUT', 'PATCH'], TRUE) && !$route->hasRequirement('_format')) { if (in_array($method, ['GET', 'HEAD', 'POST', 'PUT', 'PATCH', 'DELETE'], TRUE) && !$route->hasRequirement('_format')) { $route->addRequirements(['_format' => implode('|', $rest_resource_config->getFormats($method))]); } if (in_array($method, ['POST', 'PATCH', 'PUT'], TRUE) && !$route->hasRequirement('_content_type_format')) { Loading core/modules/rest/tests/src/Unit/EventSubscriber/ResourceResponseSubscriberTest.php +11 −11 Original line number Diff line number Diff line Loading @@ -136,7 +136,7 @@ public function testOnResponseWithCacheableResponse($methods, array $supported_r $route_match = new RouteMatch('test', new Route('/rest/test', ['_rest_resource_config' => $this->randomMachineName()], $route_requirements)); // The RequestHandler must return a ResourceResponseInterface object. $handler_response = new ResourceResponse($method !== 'DELETE' ? ['REST' => 'Drupal'] : NULL); $handler_response = new ResourceResponse(['REST' => 'Drupal']); $this->assertInstanceOf(ResourceResponseInterface::class, $handler_response); $this->assertInstanceOf(CacheableResponseInterface::class, $handler_response); Loading Loading @@ -186,7 +186,7 @@ public function testOnResponseWithUncacheableResponse($methods, array $supported $route_match = new RouteMatch('test', new Route('/rest/test', ['_rest_resource_config' => $this->randomMachineName()], $route_requirements)); // The RequestHandler must return a ResourceResponseInterface object. $handler_response = new ModifiedResourceResponse($method !== 'DELETE' ? ['REST' => 'Drupal'] : NULL); $handler_response = new ModifiedResourceResponse(['REST' => 'Drupal']); $this->assertInstanceOf(ResourceResponseInterface::class, $handler_response); $this->assertNotInstanceOf(CacheableResponseInterface::class, $handler_response); Loading Loading @@ -344,7 +344,7 @@ public function providerTestResponseFormat() { ]; $unsafe_method_bodyless_test_cases = [ 'unsafe methods without response bodies (DELETE): client requested no format, response should have no format' => [ 'unsafe methods without request bodies (DELETE): client requested no format, response should have the first acceptable format' => [ ['DELETE'], ['xml', 'json'], ['xml', 'json'], Loading @@ -352,10 +352,10 @@ public function providerTestResponseFormat() { ['Content-Type' => 'application/json'], NULL, 'xml', NULL, '', 'text/xml', $xml_encoded, ], 'unsafe methods without response bodies (DELETE): client requested format (XML), response should have no format' => [ 'unsafe methods without request bodies (DELETE): client requested format (XML), response should have xml format' => [ ['DELETE'], ['xml', 'json'], ['xml', 'json'], Loading @@ -363,10 +363,10 @@ public function providerTestResponseFormat() { ['Content-Type' => 'application/json'], NULL, 'xml', NULL, '', 'text/xml', $xml_encoded, ], 'unsafe methods without response bodies (DELETE): client requested format (JSON), response should have no format' => [ 'unsafe methods without request bodies (DELETE): client requested format (JSON), response should have json format' => [ ['DELETE'], ['xml', 'json'], ['xml', 'json'], Loading @@ -374,8 +374,8 @@ public function providerTestResponseFormat() { ['Content-Type' => 'application/json'], NULL, 'json', NULL, '', 'application/json', $json_encoded, ], ]; Loading Loading
core/modules/rest/src/EventSubscriber/ResourceResponseSubscriber.php +2 −3 Original line number Diff line number Diff line Loading @@ -122,7 +122,7 @@ public function getResponseFormat(RouteMatchInterface $route_match, Request $req return $acceptable_formats[0]; } // Sometimes, there are no acceptable formats, e.g. DELETE routes. // Sometimes, there are no acceptable formats. return NULL; } Loading @@ -141,8 +141,7 @@ public function getResponseFormat(RouteMatchInterface $route_match, Request $req * @param \Symfony\Component\Serializer\SerializerInterface $serializer * The serializer to use. * @param string|null $format * The response format, or NULL in case the response does not need a format, * for example for the response to a DELETE request. * The response format, or NULL in case the response does not need a format. * * @todo Add test coverage for language negotiation contexts in * https://www.drupal.org/node/2135829. Loading
core/modules/rest/src/Routing/ResourceRoutes.php +1 −1 Original line number Diff line number Diff line Loading @@ -116,7 +116,7 @@ protected function getRoutesForResourceConfig(RestResourceConfigInterface $rest_ // - set the allowed request body content types/formats for methods that // allow request bodies to be sent (unless hardcoded by the plugin) // - set the allowed authentication providers if (in_array($method, ['GET', 'HEAD', 'POST', 'PUT', 'PATCH'], TRUE) && !$route->hasRequirement('_format')) { if (in_array($method, ['GET', 'HEAD', 'POST', 'PUT', 'PATCH', 'DELETE'], TRUE) && !$route->hasRequirement('_format')) { $route->addRequirements(['_format' => implode('|', $rest_resource_config->getFormats($method))]); } if (in_array($method, ['POST', 'PATCH', 'PUT'], TRUE) && !$route->hasRequirement('_content_type_format')) { Loading
core/modules/rest/tests/src/Unit/EventSubscriber/ResourceResponseSubscriberTest.php +11 −11 Original line number Diff line number Diff line Loading @@ -136,7 +136,7 @@ public function testOnResponseWithCacheableResponse($methods, array $supported_r $route_match = new RouteMatch('test', new Route('/rest/test', ['_rest_resource_config' => $this->randomMachineName()], $route_requirements)); // The RequestHandler must return a ResourceResponseInterface object. $handler_response = new ResourceResponse($method !== 'DELETE' ? ['REST' => 'Drupal'] : NULL); $handler_response = new ResourceResponse(['REST' => 'Drupal']); $this->assertInstanceOf(ResourceResponseInterface::class, $handler_response); $this->assertInstanceOf(CacheableResponseInterface::class, $handler_response); Loading Loading @@ -186,7 +186,7 @@ public function testOnResponseWithUncacheableResponse($methods, array $supported $route_match = new RouteMatch('test', new Route('/rest/test', ['_rest_resource_config' => $this->randomMachineName()], $route_requirements)); // The RequestHandler must return a ResourceResponseInterface object. $handler_response = new ModifiedResourceResponse($method !== 'DELETE' ? ['REST' => 'Drupal'] : NULL); $handler_response = new ModifiedResourceResponse(['REST' => 'Drupal']); $this->assertInstanceOf(ResourceResponseInterface::class, $handler_response); $this->assertNotInstanceOf(CacheableResponseInterface::class, $handler_response); Loading Loading @@ -344,7 +344,7 @@ public function providerTestResponseFormat() { ]; $unsafe_method_bodyless_test_cases = [ 'unsafe methods without response bodies (DELETE): client requested no format, response should have no format' => [ 'unsafe methods without request bodies (DELETE): client requested no format, response should have the first acceptable format' => [ ['DELETE'], ['xml', 'json'], ['xml', 'json'], Loading @@ -352,10 +352,10 @@ public function providerTestResponseFormat() { ['Content-Type' => 'application/json'], NULL, 'xml', NULL, '', 'text/xml', $xml_encoded, ], 'unsafe methods without response bodies (DELETE): client requested format (XML), response should have no format' => [ 'unsafe methods without request bodies (DELETE): client requested format (XML), response should have xml format' => [ ['DELETE'], ['xml', 'json'], ['xml', 'json'], Loading @@ -363,10 +363,10 @@ public function providerTestResponseFormat() { ['Content-Type' => 'application/json'], NULL, 'xml', NULL, '', 'text/xml', $xml_encoded, ], 'unsafe methods without response bodies (DELETE): client requested format (JSON), response should have no format' => [ 'unsafe methods without request bodies (DELETE): client requested format (JSON), response should have json format' => [ ['DELETE'], ['xml', 'json'], ['xml', 'json'], Loading @@ -374,8 +374,8 @@ public function providerTestResponseFormat() { ['Content-Type' => 'application/json'], NULL, 'json', NULL, '', 'application/json', $json_encoded, ], ]; Loading