Definition of Drupal\rest\Plugin\rest\resource\EntityResource.
<?php
/**
* @file
* Definition of Drupal\rest\Plugin\rest\resource\EntityResource.
*/
namespace Drupal\rest\Plugin\rest\resource;
use Drupal\Core\Annotation\Plugin;
use Drupal\Core\Annotation\Translation;
use Drupal\Core\Entity\EntityStorageException;
use Drupal\rest\Plugin\ResourceBase;
use Drupal\rest\ResourceResponse;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* Represents entities as resources.
*
* @Plugin(
* id = "entity",
* label = @Translation("Entity"),
* derivative = "Drupal\rest\Plugin\Derivative\EntityDerivative"
* )
*/
class EntityResource extends ResourceBase {
/**
* Responds to entity GET requests.
*
* @param mixed $id
* The entity ID.
*
* @return \Drupal\rest\ResourceResponse
* The response containing the loaded entity.
*
* @throws \Symfony\Component\HttpKernel\Exception\HttpException
*/
public function get($id) {
$definition = $this
->getDefinition();
$entity = entity_load($definition['entity_type'], $id);
if ($entity) {
return new ResourceResponse($entity);
}
throw new NotFoundHttpException(t('Entity with ID @id not found', array(
'@id' => $id,
)));
}
/**
* Responds to entity DELETE requests.
*
* @param mixed $id
* The entity ID.
*
* @return \Drupal\rest\ResourceResponse
* The HTTP response object.
*
* @throws \Symfony\Component\HttpKernel\Exception\HttpException
*/
public function delete($id) {
$definition = $this
->getDefinition();
$entity = entity_load($definition['entity_type'], $id);
if ($entity) {
try {
$entity
->delete();
// Delete responses have an empty body.
return new ResourceResponse(NULL, 204);
} catch (EntityStorageException $e) {
throw new HttpException(500, 'Internal Server Error', $e);
}
}
throw new NotFoundHttpException(t('Entity with ID @id not found', array(
'@id' => $id,
)));
}
}
Name | Description |
---|---|
EntityResource | Represents entities as resources. |