Expose Drupal with RESTful module

Alles wat je moet weten over de RESTful module

Onze developers Jochem en Bram bloggen over de sessie van Mateu Aguilo. Mateu sprak over The RESTful module i.c.m. de API op Drupalcon Barcelona 2015.

Van 21 tot 25 september 2015 vindt DrupalCon Barcelona plaats. Ons team van developers mag dit uiteraard niet missen. Ze reisden daarom af naar Spanje. Onze developers Jochem en Bram woonden de track "Expose Drupal with RESTful" bij van Mateu Aguilo. Lees hieronder hun ervaringen!

 

We hebben deze presentatie bijgewoond om te zien wat in Drupal 8 de status is van de RESTful module. Voor ons platform Greenpeace Greenwire hebben we eerder een API geïmplementeerd. De presentatie leert ons hoe en of we dit anders moeten aanpakken in Drupal 8.

De RESTful module... zoveel meer dan het exporteren van entities

De presentatie had als doel aan te tonen dat REST meer is dan het exporteren van entities. Dat zou immers met de views module ook nog wel kunnen. En ja, de module levert veel meer! Een voorbeeld hiervan is de volledige CRUD (Create, Read, Update, Delete) ondersteuning, authenticatie, filtering en paginatie.

 

Andere voordelen zijn: 

  • Data providers: niet alleen entiteiten worden ondersteund, maar ook andere zaken zoals menu's;
  • Resource composition: gerelateerde gegevens in 1 request meesturen naar de API.

In een voorgestelde case werd een site gemaakt waarin allerlei restaurants met hun menukaart werden opgenomen. Dit werd allemaal in een Drupal backend gestopt en alleen ontsloten door de API. De front-end zou een app worden.

 

Vooraf werden afspraken gemaakt over de layout van de te versturen gegevens. Dit heeft als voordeel dat zowel de front-enders als de back-enders tegelijk kunnen beginnen met development.

 

TIP: je API versienummers geven. Dit moet je doen, omdat je er niet vanuit mag gaan dat er maar 1 client zal zijn. Zo zou je bijvoorbeeld je API kunnen updaten zonder dat een bestaande android app stukgaat, want die gebruikt versie 1.3, terwijl de iOS App al wel de nieuwe functionaliteit uit versie 1.4 gebruikt.

Mis ook deze functionaliteiten niet

De RESTFul module is developer georiënteerd, maar kan ook door sitebuilders worden gebruikt. Functionaliteiten die niet onbenoemd mogen blijven zijn:

  • Zelf plugins kunnen schrijven wanneer de module jouw situatie niet ondersteund. Voor Drupal 7 zijn er namelijk geen hooks meer in gebruik. Er wordt alleen gebruikt gemaakt van CTools plugins. Voor Drupal 8 was dit sowieso al het geval;
  • Ondersteuning van verschillende authenticatie methodes en/of eigen gebouwde authenticatie;
  • Per rol het kunnen instellen van hoe vaak je een request kunt maken. Dit om (D)Dos aanvallen tegen te gaan;
  • Tal van plugins voor de output. Dit ter ondersteuning van allerlei verschillende formaten (XML, JSON, YAML). Hanteren van een zelf gebouwde plugin voor eigen output formaat is ook mogelijk.

Tot slot, alles is discoverable. Dit betekent dat je op de URL /API van je website een overzicht ziet met alle aanwezige resources voor jou. Ook kun je diep die data induiken en dus goed zien welke gegevens een bepaald endpoint teruggeeft. Dit is natuurlijk hetgeen je wilt weten als je deze API wilt gaan gebruiken.

 

drupalcon_2015

 

Photo by James Drawneek. (Original at: flickr.com/groups/drupalconbarcelona2015/pool/)

Geen onderscheidt tussen Drupal 7 en 8

Het bleek dat Mateu, mede-ontwikkelaar van de RESTFul module, niet echt een onderscheidt maakte tussen Drupal 7 en 8. In Drupal 8 werkt het al out-of-the-box, terwijl voor Drupal 7 de module geïnstalleerd moet worden.

Terugblik op 2,5 jaar geleden en nu

We zijn enigszins verbaasd over het feit dat deze module ook vergaande ondersteuning bied voor Drupal 7. Ongeveer 2,5 jaar geleden hebben wij deze module ook bekeken. Toen voor het bouwen van een API voor ons Greenpeace Greenwire project. De staat waarin de module destijds verkeerde was voor ons reden om deze custom te bouwen. Inmiddels is die situatie veranderd. Mochten we ooit de overstap maken naar Drupal 8, of met Drupal 7 opnieuw een API moeten implementeren, dan is de RESTful module zeker een must-have!

 

Bekijk ook onderstaande video

 

 

Meer weten over Drupal web development? Neem contact met ons op!

Beheerder
GoalGorilla

Bekijk ook onze andere nieuwsartikelen

Klik voor onze award winnende klanten