Dit houdt in dat Drupal vanuit de basis architectuur ontworpen is om data makkelijk te delen en te integreren met andere toepassingen . Alle content en data die je in Drupal beheert, kun je centraal opslaan en via standaard API’s beschikbaar stellen aan andere systemen .
Drupal biedt standaard al een REST API waarmee je bestaande contenttypes (zoals pagina’s, artikelen of gebruikers) kunt aanmaken (Create), ophalen (Read), aanpassen (Update) en verwijderen (Delete) – dit noemen we samen CRUD-functionaliteit. Maar soms heb je iets nodig wat nog niet standaard beschikbaar is, bijvoorbeeld het uitvoeren van een extra validatie alvorens opslag of data ophalen op basis van een specifieke gebruiker. In dat geval kun je in Drupal met maatwerk eigen API-endpoints toevoegen middels een eigen module.
Belangrijk is dat dit niet alleen eenrichtingsverkeer is. Dankzij de API-first aanpak kan Drupal zowel dienen als bron én als ontvanger van data. Een mobile app of een externe frontend kan Drupal gebruiken om content op te halen (headless Drupal), terwijl Drupal aan de andere kant bijvoorbeeld orders kan ontvangen van een extern systeem. Deze flexibiliteit geeft je architectuur veel ruimte: Drupal kan fungeren als centrale hub of het “brein” van je digitale ecosysteem, waar alle content centraal beheerd wordt en uitgewisseld wordt met allerlei kanalen (websites, apps, kiosken, etc.) .
Technische integratie-mogelijkheden van Drupal
Omdat Drupal zo API-gericht is, zijn de technische mogelijkheden voor integratie vrijwel onbeperkt. De belangrijkste integratiemechanismen op een rij:
RESTful API (JSON/XML): Drupal beschikt over standaard REST webservices aan boord CRUD operaties en is middels maatwerk Drupal modules goed uitbreidbaar. Hiermee kun je Drupal-gegevens uitwisselen in formats zoals JSON of XML. Je hebt hiermee een universele taal om Drupal te laten praten met andere platforms, onafhankelijk van de programmeertaal van die andere applicaties.
Authenticatie en beveiliging: Drupal ondersteunt verschillende authenticatiemethodes om integraties veilig te laten verlopen. Standaard is Basic Auth beschikbaar (gebruikersnaam/wachtwoord in de API-call), en ook op sessiecookies gebaseerde authenticatie voor interne gebruiksscenario’s. Voor moderne integraties kun je gebruikmaken van OAuth2 Bearer tokens (met de contrib module Simple OAuth) of JWT (JSON Web Tokens) via de JWT module, zodat derde partijen gecontroleerd toegang krijgen tot specifieke endpoints. Deze token-gebaseerde authenticatie is ideaal om bijvoorbeeld een mobiele app veilig met je Drupal-backend te laten communiceren zonder gebruikerswachtwoorden elke keer mee te sturen. In feite kun je Drupal koppelen aan vrijwel elke moderne identity provider of tokenservice voor API-beveiliging.
SOAP en andere protocollen: Hoewel REST/JSON de huidige standaard is, sluit Drupal oudere of alternatieve protocollen niet uit. Als een bestaand systeem alleen een SOAP-webservice aanbiedt, kan Drupal daar ook mee overweg. Via PHP-soapclient libraries of modules kunnen SOAP-berichten worden verstuurd en verwerkt. Drupal’s flexibiliteit maakt het mogelijk om webservices via standaarden zoals SOAP aan te bieden of te consumeren , zodat ook legacy-systemen geïntegreerd kunnen worden.
Daarnaast zijn er integraties mogelijk via XML-RPC, CSV/feeds importeren, of zelfs direct via database-koppelingen als het echt niet anders kan. Maar de voorkeur gaat uit naar moderne API’s omdat die beter schaalbaar en onderhoudbaar zijn.
Event-gedreven integratie: Drupal kan ook reageren op events en hooks. Via Drupal’s Rules module of custom event subscribers kun je bijvoorbeeld bij een bepaalde gebeurtenis (zoals een nieuwe user registratie of een gewijzigde orderstatus) direct een API-call naar een ander systeem doen. Zo bouw je real-time koppelingen die actie ondernemen zodra er iets in Drupal gebeurt.
Uitbreidbaarheid met modules: Vrijwel elke denkbare integratie is al eens door de Drupal-community aangepakt. Er bestaan duizenden modules die functionaliteit toevoegen, inclusief connectors naar externe systemen. Bijvoorbeeld, er zijn populaire modules voor Mailchimp integratie (voor het syncen van nieuwsbrief-inschrijvingen), voor Mollie of Buckaroo betalingen, voor CRM’s als Salesforce (e.g. de Salesforce Suite module) en nog veel meer. De open source community levert hiermee kant-en-klare bouwstenen om systemen te koppelen, die jij alleen nog maar hoeft te configureren.
En omdat Drupal op PHP draait, kun je ook gebruikmaken van de talloze PHP SDK’s die leveranciers aanbieden (bijv. een PHP library van een derde partij API). De brede beschikbaarheid van deze modules en libraries versnelt integratieprojecten.
Integreren met Drupal is vaak een kwestie van de juiste configuratie of een kleine aanpassing, in plaats van urenlang vanaf nul programmeren. Voor specifieke of complexere vraagstukken is Drupal bovendien zeer toegankelijk: met maatwerkmodules kun je eenvoudig elke gewenste functionaliteit realiseren via custom API-endpoints.
Drupal maatwerk API & middleware
Wanneer configuratie en standaard functionaliteit niet volstaat voor het realiseren de gewenste oplossing maken wij de keuze voor maatwerk module ontwikkeling in Drupal. In eenvoudiger situaties is middleware vaak niet nodig en kan Drupal direct via API’s communiceren met andere systemen. Maar zodra het complexer wordt, kan middleware de integratie veel betrouwbaarder en beheersbaarder maken.
Middleware is vooral handig als:
- Je met veel verschillende systemen koppelt
- De systemen niet dezelfde taal spreken (formaat, protocol)
- Je logica of validatie wilt toevoegen tussen verzending en ontvangst maar niet per ontvangend systeem wilt laten uitvoeren
- De totale dataset, eventueel na verrijking, niet altijd of volledig relevant is voor ontvanger
- Je niet afhankelijk wilt zijn van de stabiliteit van elk systeem afzonderlijk
Middleware kan gegevens die uit het ene systeem komen (bijvoorbeeld in XML, CSV) omzetten naar een ander formaat (zoals JSON) dat het ontvangende systeem, in dit geval Drupal, begrijpt. Daarnaast kan middleware extra logica toevoegen, of data combineren, filteren en valideren voordat deze wordt doorgestuurd.
Een bijkomend voordeel is dat Drupal dan niet elk systeem afzonderlijk hoeft te benaderen. De middleware fungeert als één centraal aanspreekpunt, ook als er meerdere systemen aan de achterkant actief zijn.
Het kan ook zijn dat het stukje middleware een grote set aan data verwerkt waar Drupal slechts delen van consumeert wat bij directe verwerking door Drupal het systeem zou vervuilen en mogelijk vertragen.
Middleware biedt ook mogelijkheden voor tijdelijk bufferen: wanneer een systeem tijdelijk offline is, kan de middleware de gegevens vasthouden (queueing) en later alsnog verzenden. Diezelfde wachtrij kan ook worden ingezet bij zware dataverwerking, zodat Drupal, en dus je website of webapplicatie, daar geen hinder van ondervindt, bijvoorbeeld in de vorm van langere laadtijden.
Hoewel Drupal prima inzetbaar is als het centrale brein binnen een IT-landschap, is dat niet altijd de meest gewenste situatie. Soms is het juist een strategische keuze om beveiliging en toegangscontrole onder te brengen in de middleware laag.
Drupal koppelingen - praktijkvoorbeelden:
Onze opdrachtgever, Royal Caribbean Cruises, beschikt over een intern systeem zonder API en levert productdata in de vorm van een CSV-bestand aan. Het gaat om honderdduizenden records, terwijl de door ons ontwikkelde Drupal-webapplicatie alleen bij een klacht specifieke productdata en metadata nodig heeft. Een stuk middleware, ontwikkeld in Symfony, importeert en beheert de data uit het CSV-bestand en stelt via een eigen API op basis van ProductID de gegevens beschikbaar aan Drupal die op dat moment nodig zijn. →
NBD Biblion heeft meerdere websites en webapplicaties in Drupal, de door ons ontwikkelde middleware tool NBD Connect4all is een maatwerkoplossing voor het afhandelen van authenticatie en autorisatie.
Voor De Carnegie Stichting schreven we een import en update van een XML met 2,3 miljoen records. Na normalisatie van de data groeit het totaal naar ongeveer 60 miljoen records. De import, update en verwerking verlopen via Symfony, waarna de data wordt geïndexeerd in Solr. Zo wordt het mogelijk om de gegevens snel en gebruiksvriendelijk te doorzoeken binnen de eigen Drupal website via de standaard Search API Solr module van Drupal.
PHP als basis: ruime keuze aan integratiemogelijkheden
Drupal is gebouwd op PHP, een van de meest gebruikte programmeertalen op het web. Dit brengt enkele belangrijke voordelen met zich mee voor integraties:
Ten eerste is er een gigantische vijver aan PHP-ontwikkelaars en -componenten. Vrijwel elke grote softwareleverancier biedt wel een PHP SDK of API-client aan. Dat betekent dat als jij bijvoorbeeld een Drupal koppeling wilt met een extern systeem, de kans groot is dat er al een PHP-bibliotheek bestaat om die API te gebruiken. Die kunnen we direct in Drupal toepassen. PHP’s populariteit zorgt er ook voor dat je makkelijk experts vindt (zoals Atom) die verstand hebben van zowel Drupal als het koppelen van PHP-componenten.
“standaard waar mogelijk, maatwerk waar nodig”
Daarnaast heeft Drupal zelf een enorme community die continu modules en integraties ontwikkelt. Er zijn inmiddels ruim 45.000 modules beschikbaar binnen de Drupal community. Dit omvat niet alleen content-features, maar ook integraties met allerlei externe diensten. Of je nu een payment gateway, analytics-tool of e-mailplatform wilt koppelen, de kans is groot dat iemand al een module heeft gemaakt die een basis legt. Deze modules worden centraal beheerd en gecontroleerd op veiligheid, wat extra vertrouwen geeft in hun gebruik. Met zo’n module leg je vaak al 80% van de integratie, en hoef je alleen nog de specifieke configuratie voor jouw situatie te doen.
Het gebruik van bestaande componenten sluit naadloos aan bij Drupal’s filosofie: standaard waar mogelijk, maatwerk waar nodig. Waarom iets “from scratch” coderen als een doorgewinterde oplossing al voorhanden is? Door slim gebruik te maken van community-modules bespaar je tijd en kosten, en profiteer je van oplossingen die door vele anderen zijn getest. Bovendien blijf je dichter bij de standaard, wat upgrades in de toekomst eenvoudiger maakt. PHP als basis betekent ook dat integraties die je bouwt relatief eenvoudig zijn uit te breiden of aan te passen, omdat de taal en structuur voor zoveel developers herkenbaar is. Dit maakt jouw Drupal integratie een toekomstbestendige investering.
Haal meer uit Drupal met slimme integraties
De conclusie is duidelijk: door je systemen te koppelen kun je enorm veel winst behalen in efficiëntie, foutreductie en inzicht. Drupal integraties vormen hierbij een krachtig instrument. Dankzij Drupal’s API-first basis en enorme flexibiliteit kun je vrijwel elke tool in je landschap verbinden met je Drupal-platform – van niche-applicaties tot enterprise software. Het resultaat is één soepel werkend geheel waarin informatie vloeit naar waar het nodig is, op het juiste moment en zonder handmatig gedoe.
Ben je benieuwd hoe Drupal koppelingen jouw organisatie concreet kunnen helpen? Of heb je specifieke systemen in gedachten die je wilt laten praten met Drupal? Atom staat voor je klaar om dit te realiseren. Met jarenlange ervaring in Drupal ontwikkeling en integraties weten we elke uitdaging te tackelen.
Plan een oriënterend gesprek om de mogelijkheden voor jóuw Drupal koppeling te onderzoeken. We denken graag met je mee over de beste integratie-oplossing voor jouw situatie en hoe je daarmee het maximale uit Drupal haalt. Neem vandaag nog contact op – samen bouwen we aan jouw IT-landschhap!