Experts en Drupal

Ús del mòdul restws a Drupal 7: Part 3

Seguim amb el mòdul RESTful Web Services per explicar-vos com poder fer servir aquest mòdul amb “Deep load” per tal de tenir carregades automàticament les entitats relacionades i estalviar-nos així crides addicionals que perjudicarien el rendiment de la nostra web/aplicació.

Ús del mòdul restws a Drupal 7: Part 3

Com millorar el rendiment amb restws?

Per aconseguir-ho ens haurem de baixar el següent mòdul de Bitbucket i activar-lo aquí.

Aquest mòdul ha estat compartit a drupal.org per l’usuari npacker i afageix dos paràmetres a les crides del mòdul REST:

  • load-entity-refs: llistat separat per comes simples amb els tipus d’entitats relacionades que volem carregar automàticament. Valors possibles: node, taxonomy_term, file i field_collection_item.
  • max-depth: un número enter que indica el número màxim de profunditat (partint de l’entitat pare) en el que volem anar carregant automàticament les entitats relacionades.

Per entendre-ho millor, analitzem tres exemples diferents:

  1. Sense Deep load: http://DRUPAL_URL/node.json?type=article
  2. Amb Deep load amb profunditat 1: http://DRUPAL_URL/node.json?load-entity-refs=node,taxonomy_term&max-depth=1&type=article
  3. Amb Deep load amb profunditat 2: http://DRUPAL_URL/node.json?load-entity-refs=node,taxonomy_term&max-depth=2&type=article

La crida del primer exemple ens retorna tots els articles de la web, però tots els camps d’entitats relacionades ens vindran només amb el seu identificador i tipus. Per tant, si volguéssim informació addicional d’aquests camps, hauríem de fer més crides remotes.

En canvi, la segona crida ens retornarà ja carregades totes les entitats relacionades que siguin de tipus taxonomia i node. No obstant, donat que estem demanant una profunditat de nivell 1, només tindrem carregades les entitats relacionades directament amb l’article principal.

En altres paraules, si, per exemple, la taxonomia relacionada amb els articles té al mateix temps un node o una taxonomia relacionada, aquesta no estarà carregada (només disposarem del seu identificador i tipus). Per tant, en aquest cas necessitaríem una profunditat de nivell 2 com es veu en el tercer exemple.

Comparteix aquest article

Articles Relacionats