Drupal ist ein bekannter Name, wenn es um die Entwicklung von Websites geht. Die Art von Funktionen und Kontrolle, die es Ihnen über Ihre Inhalte ermöglicht, ist beeindruckend. Die traditionelle Drupal-Architektur hat sich immer wieder als wertvoll erwiesen, und jetzt ist es an der Zeit, dass die Decoupled Drupal-Architektur das Gleiche tut, was sie auch gerade tut. Ein Hauptgrund für die zunehmende Popularität und Akzeptanz von Decoupled Drupal ist die Freiheit, das Frontend mit den Technologien zu gestalten, die Ihnen gefallen.
Da die Decoupled Drupal-Architektur die Präsentationsschicht vom Backend-Content trennt, wird eine API zum Bindeglied, das die beiden zusammenhält, damit sie synchron arbeiten. Daher ist es wichtig, die richtige für Ihr Projekt zu wählen. Während REST API und JSON: API sehr begehrt sind, hat sich GraphQL ebenfalls als Spitzenreiter herauskristallisiert. Finden wir also heraus, was GraphQL genau ist, was es kann und welche Rolle es im Bild der Decoupled Drupal-Architektur spielt.
GraphQL entschlüsseln

GraphQL, eine Abfragesprache, entstand vor etwa acht Jahren, ihre Popularität kam jedoch erst 2016 auf, als sie als Open-Source-Software veröffentlicht wurde. Ihr Gründer, Facebook, entwickelte eine einzigartige API, weil sie ein Programm benötigten, um Daten aus dem gesamten Content-Repository abzurufen. Es ist ein System, das leicht zu erlernen und ebenso leicht zu implementieren ist, unabhängig von den riesigen Datenmengen, die Sie möglicherweise haben, oder der riesigen Anzahl von Quellen, die Sie durchsuchen möchten.
Als ich sagte, dass GraphQL eine Abfragesprache ist, meinte ich genau das. Es ist eine Sprache, die alle Ihre Datenabfragen mithilfe ihres Schemas beantwortet, das einfach mit GraphiQL, einer integrierten Entwicklungsumgebung, bereitgestellt werden kann. GraphQL ist eine Sprache, die speziell für APIs entwickelt wurde und mit Hilfe einer vielseitigen Syntax auch in der Lage ist, Daten zu manipulieren. Die GraphQL-Syntax wurde so erstellt, dass sie die Anforderungen und Interaktionen von Daten an Ihre speziellen Bedürfnisse anpassen kann. Der strahlende Ruhm von GraphQL besteht darin, dass Sie nur das bekommen, wonach Sie gefragt haben, nicht mehr und nicht weniger. Dies bedeutet, dass die Anwendung nur darauf hinarbeitet, Daten abzurufen, die für die Anfrage von Bedeutung sind. Die Daten müssen möglicherweise aus verschiedenen Quellen geladen werden, sind aber dennoch genau, präzise, auf den Punkt gebracht und genau das, was Sie gesucht haben.
Da Entkopplung heute mehr denn je eine Notwendigkeit ist und sich Inhalts- und Präsentationsschichten voneinander trennen, wird GraphQL zur Antwort auf alle Datenabfragen und damit im Wesentlichen zur Antwort auf den Datenabruf für Ihre API und Ihre Webanwendung. GraphQL ist eine Abfragesprache und eine Laufzeitumgebung, um jede Abfrage innerhalb Ihrer vorhandenen Daten zu erfüllen. Sie ist in der Lage, eine vollständige und umfassende Beschreibung Ihrer Daten mithilfe der API zu erstellen. Seine robusten Entwicklertools haben bewiesen, dass sie APIs schneller, flexibler und äußerst freundlich für unsere Entwickler machen. Daher wird das Erreichen der Entkopplung extrem einfach, da GraphQL typisierte, implementierungsunabhängige Verträge zwischen Systemen bereitstellt.
GraphQL vs. JSON:API vs. REST API
Die Leistungsfähigkeit und Unterstützung von APIs sind in der entkoppelten Welt noch deutlicher geworden. Da hier drei prominente Namen die Führung übernehmen, ist es etwas schwierig, zur richtigen API-Schlussfolgerung zu gelangen. GraphQL, JSON:API und REST API haben alle drei ihre eigenen Vorzüge, die sie in dem, was sie tun wollen, großartig machen. Es ist jedoch fast unmöglich, über das eine zu sprechen und die anderen beiden zu ignorieren. Mein Artikel wäre ohne einen Vergleich der drei nicht vollständig gewesen.
Wenn Sie sich die Kernfunktionalität dieser drei APIs ansehen, werden Sie feststellen, dass GraphQL und JSON: API einander viel ähnlicher sind als REST API, die im Vergleich zu ihnen ein ganz anderes Spiel ist. Schauen wir sie uns an.
Parameter | GraphQL | JSON: API | REST API |
Wie viele Daten werden abgerufen? | Ruft keine überflüssigen Daten ab | Ruft keine überflüssigen Daten ab | Überschwemmt den Benutzer mit unnötigen Datenmengen |
Wie wird die API erkundet? | Hat die beste API-Erkundung aufgrund von GraphiQL | Verwendet einen Browser, um die API zu erkunden | Schneidet relativ schlecht ab und die navigierbaren Links sind selten verfügbar |
Wie ist die Schema-Dokumentation? | Perfekte automatisch generierte Dokumentation und zuverlässiges Schema | Hängt vom OpenAPI-Standard ab und die JSON:API-Spezifikation definiert nur ein generisches Schema | Hängt vom OpenAPI-Standard ab |
Wie funktionieren die Schreibvorgänge? | Schreibvorgänge sind knifflig | Schreibvorgänge werden mit kompletten Lösungen geliefert | Schreibvorgänge können mit mehreren Implementierungen mühsam werden |
Wie optimiert kann es während der Installation und Konfiguration sein? | Bietet zahlreiche nicht implementierungsspezifische Entwicklertools, ist aber gering in Bezug auf Skalierbarkeit und Sicherheit | Bietet zahlreiche nicht implementierungsspezifische Entwicklertools und ist hoch in Bezug auf Skalierbarkeit und Sicherheit | Bietet zahlreiche Tools, aber sie erfordern spezifische Implementierungen und bieten eine gute Skalierbarkeit und hohe Sicherheit |
GraphQL
Mit GraphQL und seinen unterschiedlichen Abfragefeldern wird der Entwickler aufgefordert, jede gewünschte Ressource in diesen Feldern anzugeben. Sie fragen sich vielleicht warum? Die Antwort liegt in seiner Genauigkeit. Aufgrund dieser explizit erwähnten Wünsche ruft GraphQL niemals überflüssige Daten ab.
Was die API-Erkundung betrifft, so ist GraphQL am einfachsten und schlüssigsten. Die Tatsache, dass eine GraphQL-Abfrage mit Vorschlägen geliefert wird, die automatisch vervollständigt werden können, rechtfertigt meine frühere Behauptung. Darüber hinaus werden die Ergebnisse zusammen mit der Abfrage angezeigt, was zu einem reibungslosen Feedback führt. Seine hauseigene IDE, GraphiQL, hilft auch bei der Generierung von Iterationen der Abfragen und unterstützt die Entwickler noch mehr.
Wenn Sie mir sagen würden, dass GraphQL-Spezifikationen besser für das Lesen als für das Schreiben geeignet sind, würde ich Ihnen nicht widersprechen. Seine Mutationen erfordern jedes Mal die Erstellung eines neuen benutzerdefinierten Codes. Sie können sich wahrscheinlich vorstellen, wie mühsam das sein kann. Ungeachtet dessen kann GraphQL problemlos Bulk-Schreibvorgänge unterstützen, die bereits implementiert wurden.
In Bezug auf die Skalierbarkeit benötigt GraphQL zusätzliche Tools, um sein volles Potenzial auszuschöpfen, und es stehen sicherlich zahlreiche Entwicklertools zur Verfügung, die alle nicht implementierungsspezifisch sind.
JSON: API
Das Problem des Überabrufens wird auch bei JSON:API nicht beobachtet. Seine spärlichen Feldmengen erzeugen eine ähnliche Ausgabe wie GraphQL. Im Gegensatz zu den nicht zwischenspeicherbaren Anfragen von GraphQL kann JSON: API jedoch die spärlichen Feldmengen weglassen, wenn sie zu lang werden, und daher auch die längsten Anfragen zwischenspeichern.
Mit JSON: API sind die Erkundungen ebenfalls einfach; so einfach wie das Surfen in einem Webbrowser, was im Grunde das ist, was die API hier tut. Vom Durchsuchen verschiedener Ressourcen bis hin zu verschiedenen Feldern und dem Debuggen können Sie all das mit Ihrem Browser tun. Kann der Datenabruf einfacher sein?
In Bezug auf das Schreiben ist JSON: API wahrscheinlich das beste aus der Gruppe. Es bietet eine umfassende Lösung für die Handhabung von Schreibvorgängen mithilfe von POST- und PATCH-Anfragen. Auch wenn die Bulk-Unterstützung derzeit nicht verfügbar ist, wird daran gearbeitet und sie wird bald in Gebrauch sein.
JSON: API ähnelt wiederum GraphQL, da es auch verschiedene Entwicklertools bereitstellt, die nicht implementierungsspezifisch sind. Die Tatsache, dass seine Infrastruktur der einer Website ähnelt und Varnish und CDN erfordert, unterscheidet es von ersterem.
REST API
REST API hat wahrscheinlich das System mit dem größten Überabruf. Es schreibt nicht nur mehrere Anfragen für ein einzelnes Inhaltselement vor, sondern liefert Ihnen auch Antworten, die oft sogar über die Schwelle der Ausführlichkeit hinausgehen. Und die Daten, mit denen Sie am Ende dastehen, sind so viel mehr, als Sie gefragt und benötigt haben.
Auch hier unterscheidet sich REST API in Bezug auf die Datenerkundung völlig von den anderen beiden. Und leider ist dies keine gute Art von Unterschied. REST API ist stark von einem OpenAPI-Standard abhängig, und wenn Sie sich nicht daran halten, sieht es für Sie etwas düster aus. Sie können ihm nicht für eine automatisch generierte Dokumentation oder ein validierbares und programmierbares Schema vertrauen. Die Navigation durch große Datenmengen auf der Suche nach Interaktivität ist ebenfalls nicht allzu beeindruckend.
Das Schreiben von Daten in REST API ist recht einfach, fast so einfach wie das Lesen. Mit POST- und PATCH-Anfragen ist jede Implementierung einzigartig. Bulk-Unterstützung ist nicht vorgesehen.
Die infrastrukturellen Anforderungen von REST API ähneln ebenfalls denen einer gewöhnlichen Website, die Varnish oder CDN umfasst. Seine zusätzlichen Tools erfordern jedoch trotz ihrer Vielzahl eine Anpassung vor der Implementierung.
Die Dynamik von GraphQL und Decoupled Drupal
GraphQL ist eine Sprache, die sich während meines Schreibens und Ihres Lesens weiterentwickelt, aber das bedeutet nicht, dass sie instabil ist. Darüber hinaus wird GraphQL von mehreren Drupal-Websites genutzt. Die Genauigkeit der Antworten zusammen mit der jederzeit verfügbaren Introspektionsschicht macht GraphQL wirklich lohnenswert.
Lassen Sie uns nun verstehen, wie es die perfekte Antwort auf Decoupled Drupal ist, indem wir alle richtigen Fragen oder soll ich sagen Abfragen stellen?
Wie nutzt Drupal GraphQL vollständig?
Drupal kann starr sein, das ist eine Tatsache, die wir alle kennen. Abgesehen davon kann Drupal mit allem, was es zu bieten hat, auch zu viel erscheinen. Was GraphQL tut, ist, dass es Ihnen die Möglichkeit und die Macht gibt, ein benutzerdefiniertes Schema zu erstellen und freizugeben, das schließlich zum einzigen Weg zu allen Daten wird; Informationen, Operationen und Interaktionen, was auch immer innerhalb des Systems geschieht. Und dann scheint Drupal nicht zu starr zu sein.
Sie erhalten ein GraphQL-Modul in Drupal, das um webonyx oder graphql-php herum entwickelt wurde. Das bedeutet, dass das Modul im Grunde genauso vollgepackt mit Funktionen ist wie die eigentliche Sprache mit allen GraphQL-Spezifikationen.
- Das Modul kann als Grundlage für die Erstellung Ihres eigenen Schemas durch Generierung eines benutzerdefinierten Codes verwendet werden;
- Das Modul kann auch verwendet werden, um das bereits vorhandene Schema mit Hilfe der Plugin-Architektur zu erweitern, wobei das Plugin als Submodul fungiert.
- Um die Entwicklung noch weiter zu unterstützen, ist GraphiQL auch unter /graphql/explorer enthalten, das als Benutzeroberfläche für Sie dient.
- Schließlich gibt es integrierte Debugging-Tools, die in der Lage sind, Abfragen auszugeben und ihre Antworten zu analysieren, und das auch in Echtzeit.
GraphQL ist ein leistungsstarkes Tool und Drupal hat sichergestellt, dass seine gesamte Community seine Leistungsfähigkeit leicht nutzen kann.
Das GraphQL Twig-Modul ist die nächste Weiterentwicklung in Drupal. Es wurde und wird im Allgemeinen angenommen, dass GraphQL-Abfragen nur über HTTP gesendet werden können, aber das stimmt nicht. Es kann sein, aber es gibt auch andere Möglichkeiten und dieses Modul verkörpert das. Sie können die Twig-Vorlagen von den internen Strukturen von Drupal trennen, so dass die Wartung und Wiederverwendung ohne Beteiligung von HTTP einfacher ist.
Sollten wir GraphQL oder JSON:API oder REST in Drupal verwenden?
Bevor wir darauf eingehen, warum GraphQL, müssen wir verstehen, warum nicht REST und was seine Einschränkungen sind. Erstens ist REST UI absolut wichtig, um das REST-Modul in Drupal einzurichten. Nicht zu vergessen, es kann ziemlich mühsam sein, es zu konfigurieren. Darüber hinaus besteht das Hauptproblem bei REST darin, dass es Informationen überabruft und Sie mit Daten bombardiert, die Sie nicht einmal benötigen und sicherlich nicht angefordert haben. Sie haben vielleicht nur den Titel eines Artikels benötigt, aber die Benutzer-ID des Autors ist auch in der Antwortliste enthalten. Dies führt zu einem Kreislauf von Folgeabfragen und Sie erhalten am Ende den Titel des Artikels, den Link, den Namen des Autors, seine Informationen und den gesamten Inhalt des besagten Artikels. Überabrufen ist eine Untertreibung.
Da GraphQL die APIs auf einfachere Weise verwendet, ist es besser als REST-Endpunkte. Ersteres stellt keine einzelnen Ressourcen mit festen Datenstrukturen und Links zwischen ihnen bereit, sondern bietet Ihnen die Möglichkeit, eine beliebige Auswahl von Daten anzufordern, die Sie möglicherweise benötigen. Sie können problemlos mehrere Ressourcen gleichzeitig auf der Serverseite abfragen und folglich die verschiedenen Datenelemente in einer einzigen Abfrage kombinieren. Daher wird Ihre Arbeit als Frontend-Entwickler zum Kinderspiel. Sie könnten sich immer noch für REST entscheiden, wenn Sie wollten, es hat seine eigenen Vorzüge.
Nun zur Wahl zwischen JSON: API und GraphQL, dies ist eine schwierigere Entscheidung. Diese beiden arbeiten auf einem Niveau parallel zueinander. Zum Beispiel ist die Installation des JSON: API-Moduls ein Kinderspiel, ohne dass eine Konfiguration erforderlich ist. Was GraphQL betrifft, so ist die Installation ebenfalls einfach, aber es ist eine gewisse Konfiguration erforderlich. Sehen Sie, warum ich gesagt habe, dass die Wahl schwierig war?
Wo Entkopplung betroffen ist, sind JSON: API und GraphQL viel besser als REST. Serverseitige Konfiguration ist für die Clients nicht erforderlich, um Inhaltsabfragen durchzuführen. Während JSON: API die Standardeinstellung hat, jede vom Client generierte Abfrage zu ändern, schreibt GraphQL vor, dass die Berechtigungen vom Konsumenten gehalten werden müssen, damit er auf Zugriffs beschränkungen verzichten kann. Es gibt hier keine richtige oder falsche Methode, beide haben die richtigen Filterwerkzeuge für die Entkopplung und beide sind Sicherheit für Ihre Inhalte.
Wann ist das GraphQL-Modul am besten geeignet?
Nur die Daten abrufen, die angefordert werden, sollte der Slogan von GraphQL sein, und deshalb ist es in Szenarien, in denen Sie Daten abrufen müssen, sehr nützlich.
- Entkoppelte Drupal-Anwendungen, bei denen Drupal als Inhaltsrepository und ein von React, Angular oder Ember betriebenes Frontend dient.
- Mobile Anwendungen, bei denen die Datenspeicherung das Gebot der Stunde ist.
- Internet der Dinge Datenspeicherung.
- Wenn Sie die JSON-Daten von Drupal abrufen möchten.
- Und auch, wenn Sie planen, die Twig-Vorlagen in Drupal-Themes zu verwenden.
Das GraphQL-Modul wäre in all diesen Fällen perfekt.
Warum passen GraphQL und Drupal so gut zusammen?
GraphQL gilt als eine ausgezeichnete Ergänzung für Decoupled Drupal-Websites, insbesondere wenn sie Entitäten als Felder für gespeicherte Daten umfassen und diese Felder Beziehungen zu anderen Entitäten haben. GraphQL hilft Ihnen, Abfragen für nur die Felder zu erstellen, die Sie aus dem Artikel benötigen. Diese Art von Flexibilität macht es einfach, ein Objekt, das Sie zurückwollten, umzustrukturieren und Ihnen zu helfen, auch die Anzeige zu ändern. Sie können Abfragen schreiben, Felder aus den Ergebnissen hinzufügen oder entfernen, und Sie können all dies tun, ohne einen Code im Backend zu schreiben. Die Fähigkeit des GraphQL-Moduls, jede Entität einschließlich Seiten, Benutzer und Kundendaten freizugeben, lässt all dies recht einfach erscheinen. Es würde also ausreichen zu sagen, dass die Entkopplungserfahrung ohne GraphQL nicht dieselbe wäre.
Hat GraphQL die herkömmliche Server-Client-Beziehung beeinflusst?
Traditionell war der Server in der Server-Client-Beziehung der dominierende, aber jetzt hat der Client mehr Macht und GraphQL hat dies sichergestellt. Damit muss der Client nicht alles befolgen, was der Server auferlegt, er kann einfach seine Bedürfnisse auf einer Pro-Anfrage-Basis aussprechen. Nachdem der Server die Datenmöglichkeiten gezeigt hat, die er erfüllen kann, wäre es für den Client äußerst einfach, seine Bedürfnisse mit den katalogisierten Möglichkeiten im Vordergrund zu definieren. Die Form der Werte, die die GraphQL-API einfügt und zurückgibt, ist in jeder Hinsicht die gleiche.
Darüber hinaus nutzt GraphQL die tief verschachtelten relationalen Datenstrukturen, die für Graphmodelle geeignet sind. Die Fähigkeiten des GraphQL-Schemas und der Abfragevalidierung stellen sicher, dass es verteilte Denial-of-Service-Angriffe verhindern kann, wodurch Versuche zur Überlastung von Abfragen verhindert werden. Die Vorteile von GraphQL in Drupal sind in der Tat vielfältig.
Wie wird die Zukunft aussehen?
GraphQL ist kein Teil des Drupal-Kerns, da es sich um ein fortschrittliches Tool handelt, das etwas komplexer zu bedienen ist. Die Zukunft zeigt auch keine Anzeichen dafür, dass es einer werden wird. Es gibt jedoch auch andere Aspekte, auf die man sich freuen kann. GraphQL v4 für Drupal ist eine der am meisten erwarteten Versionen des GraphQL-Moduls. Es würde zahlreiche Verbesserungen für das Modul mit sich bringen, das sich ständig weiterzuentwickeln scheint. Das GraphQL-Schema wird die vollständige Kontrolle der Drupal-Entwickler haben, da die Schemaanpassung der heilige Gral dieses Moduls war, sieht es gut aus und die Zukunft rosiger. GraphQL und Drupal haben noch einen langen Weg vor sich.
Abonnieren
Verwandte Blogs
KI-Fairness: Ein tiefer Einblick in Microsofts Fairlearn Toolkit

Künstliche Intelligenz (KI) hat branchenübergreifend, insbesondere im Finanzdienstleistungssektor, das Spiel verändert. Von…
API-Dokumentationstool: Die 10 besten Tools für 2025

Eine Google-Suche nach „Bestes API-Dokumentationstool“ liefert zahlreiche Ergebnisse. Die wachsende Anzahl von API…
6 verbreitete Irrtümer über Softwaretests – widerlegt

Eine einwandfreie Produktauslieferung erfordert eine perfekte Kombination aus Entwicklungs- und Testaufwand. Das Testen…