Expertos en Drupal

Uso del módulo restws en Drupal 7: Parte 3

Seguimos con el módulo RESTful Web Services para explicaros cómo poder usar este módulo con “Deep load” para tener cargadas automáticamente las entidades relacionadas y ahorrarnos así llamamientos adicionales que perjudicarían el rendimiento de nuestra web/aplicación.

Uso del módulo restws en Drupal 7: Parte 3

¿Cómo mejorar el rendimiento con restws?

Para conseguirlo nos tendremos que bajar el siguiente módulo de Bitbucket y activarlo aquí.

Este módulo ha sido compartido en drupal.org por el usuario npacker y añade dos parámetros a los llamamientos del módulo REST:

  • load-entity-refs: listado separado por comas simples con los tipos de entidades relacionadas que queremos cargar automáticamente. Valores posibles: node, taxonomy_term, file y field_collection_item.
  • max-depth: un número entero que indica el número máximo de profundidad (partiendo de la entidad padre) en el que queremos ir cargando automáticamente las entidades relacionadas.

Para entenderlo mejor, analizamos tres ejemplos diferentes:

  1. Sin Deep load: http://DRUPAL_URL/node.json?type=article
  2. Con Deep load con profundidad 1: http://DRUPAL_URL/node.json?load-entity-refs=node,taxonomy_term&max-depth=1&type=article
  3. Con Deep load con profundidad 2: http://DRUPAL_URL/node.json?load-entity-refs=node,taxonomy_term&max-depth=2&type=article

El llamamiento del primer ejemplo nos devuelve todos los artículos de la web, pero todos los campos de entidades relacionadas nos vendrán sólo con su identificador y tipo. Por lo tanto, si quisiéramos información adicional de estos campos, tendríamos que hacer más llamamientos remotos.

En cambio, el segundo llamamiento nos devolverá ya cargadas todas las entidades relacionadas que sean de tipo taxonomía y nodo. No obstante, dado que estamos pidiendo una profundidad de nivel 1, sólo tendremos cargadas las entidades relacionadas directamente con el artículo principal.

En otras palabras, si, por ejemplo, la taxonomía relacionada con los artículos tiene al mismo tiempo un nodo o una taxonomía relacionada, esta no estará cargada (sólo dispondremos de su identificador y tipo). Por lo tanto, en este caso necesitaríamos una profundidad de nivel 2 como se ve en el tercer ejemplo.

Comparte este artículo

Artículos Relacionados