Usando este tutorial el drupal gprr
comando de la Consola Drupal , he creado un recurso REST personalizado en Drupal 8. Puedo usar este recurso para recuperar un simple objeto JSON que saluda al usuario actual haciendo un GET en:
http://localhost/example/hello?_format=json
El JSON regresado se ve así:
{ "hello": "tyler" }
Esto es de esperarse, ya que estoy conectado. Pero cuando salgo y hago otra GET en el recurso, se devuelve el mismo resultado :
{ "hello": "tyler" }
Hacer un borrado completo de caché de Drupal soluciona este problema, pero me gustaría deshabilitar específicamente el almacenamiento en caché en este recurso. ¿Cómo puedo hacer eso?
Como solución alternativa, pensé que agregar una marca de tiempo a la cadena de consulta funcionaría:
http://localhost/example/hello?_format=json&time=123456789
Pero eso también devuelve el mismo resultado exacto , sin importar el valor de la marca de tiempo en la cadena de consulta.
Por brevedad, aquí está el código esqueleto para construir el recurso GET:
class ExampleHello extends ResourceBase {
/**
* {@inheritdoc}
*/
public static function create(/* ... */) {
return new static(/* ... */);
}
/**
* Constructs a Drupal\rest\Plugin\ResourceBase object.
*/
public function __construct(/* ... */) {
parent::__construct(/* ... */);
// ...
}
/*
* Responds to GET requests.
*/
public function get() {
$account = \Drupal::currentUser()->getAccount();
if (!$account->id()) {
return new ResourceResponse(array(
'welcome' => 'visitor'
));
}
return new ResourceResponse(array(
'hello' => $account->getAccountName()
));
}
}
¿Hay una configuración / configuración que necesito establecer en este complemento para deshabilitar el almacenamiento en caché en las solicitudes GET?
\Drupal
en lugares donde puede inyectar el servicio, que según su código comentado, parece que puede hacerlo aquí.