services:
  plugin.manager.rest:
    class: Drupal\rest\Plugin\Type\ResourcePluginManager
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
  cache.rest:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory: cache_factory:get
    arguments: [rest]
  # @todo Remove this service in Drupal 9.0.0.
  access_check.rest.csrf:
    alias: access_check.header.csrf
  rest.link_manager:
    class: Drupal\rest\LinkManager\LinkManager
    arguments: ['@rest.link_manager.type', '@rest.link_manager.relation']
  rest.link_manager.type:
    class: Drupal\rest\LinkManager\TypeLinkManager
    arguments: ['@cache.default', '@module_handler', '@config.factory', '@request_stack', '@entity_type.bundle.info']
  rest.link_manager.relation:
    class: Drupal\rest\LinkManager\RelationLinkManager
    arguments: ['@cache.default', '@entity.manager', '@module_handler', '@config.factory', '@request_stack']
  rest.resource_routes:
    class: Drupal\rest\Routing\ResourceRoutes
    arguments: ['@plugin.manager.rest', '@entity_type.manager', '@logger.channel.rest']
    tags:
      - { name: 'event_subscriber' }
  logger.channel.rest:
    parent: logger.channel_base
    arguments: ['rest']
