public function EntityResource::get in Drupal 10
Same name and namespace in other branches
- 8 core/modules/rest/src/Plugin/rest/resource/EntityResource.php \Drupal\rest\Plugin\rest\resource\EntityResource::get()
 - 9 core/modules/rest/src/Plugin/rest/resource/EntityResource.php \Drupal\rest\Plugin\rest\resource\EntityResource::get()
 
Responds to entity GET requests.
Parameters
\Drupal\Core\Entity\EntityInterface $entity: The entity object.
\Symfony\Component\HttpFoundation\Request $request: The incoming request.
Return value
\Drupal\rest\ResourceResponse The response containing the entity with its accessible fields.
Throws
\Symfony\Component\HttpKernel\Exception\HttpException
File
- core/
modules/ rest/ src/ Plugin/ rest/ resource/ EntityResource.php, line 126  
Class
- EntityResource
 - Represents entities as resources.
 
Namespace
Drupal\rest\Plugin\rest\resourceCode
public function get(EntityInterface $entity, Request $request) {
  $response = new ResourceResponse($entity, 200);
  // @todo Either remove the line below or remove this todo in https://www.drupal.org/project/drupal/issues/2973356
  $response
    ->addCacheableDependency($request->attributes
    ->get(AccessAwareRouterInterface::ACCESS_RESULT));
  $response
    ->addCacheableDependency($entity);
  if ($entity instanceof FieldableEntityInterface) {
    foreach ($entity as $field_name => $field) {
      /** @var \Drupal\Core\Field\FieldItemListInterface $field */
      $field_access = $field
        ->access('view', NULL, TRUE);
      $response
        ->addCacheableDependency($field_access);
      if (!$field_access
        ->isAllowed()) {
        $entity
          ->set($field_name, NULL);
      }
    }
  }
  $this
    ->addLinkHeaders($entity, $response);
  return $response;
}