core/core.services.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core/core.services.yml b/core/core.services.yml index 7d7ff3e..4b1ba41 100644 --- a/core/core.services.yml +++ b/core/core.services.yml @@ -932,15 +932,21 @@ services: request_format_route_filter: class: Drupal\Core\Routing\RequestFormatRouteFilter tags: + # The request format route filter must run last. - { name: route_filter } method_filter: class: Drupal\Core\Routing\MethodFilter tags: - - { name: route_filter, priority: 1 } + # The HTTP method route filter must run first: based on the request method, content type request header-based + # route filtering (content_type_header_matcher) may or may not be necessary. + - { name: route_filter, priority: 10 } content_type_header_matcher: class: Drupal\Core\Routing\ContentTypeHeaderMatcher tags: - - { name: route_filter } + # The content type request header router filter must run before the request format route filter + # (request_format_route_filter), because without a valid request body (for HTTP methods that need it, such as POST + # and PATCH), no successful response is possible. + - { name: route_filter, priority: 5 } paramconverter_manager: class: Drupal\Core\ParamConverter\ParamConverterManager tags: