public function EntityResource::get in Drupal 9
Same name and namespace in other branches
- 8 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;
}