Web-Services als Architektur-Prinzip, z.B. für eine komplette IT-Infrastruktur in vielen Unternehmen, sind schon lange ein Thema unter dem Stichwort SOAP (Simple Object Access Protocol). Am stärksten durchgesetzt hat sich das Prinzip in der Java-Welt, auch wenn selbstverständlich in den beiden anderen großen IT-System-Welten (OpenSource/PHP und Microsoft .NET) ebenfalls Technologien hierfür zur Verfügung standen.
In der einfacheren Version als REST-Service (REpresentational State Transfer) erleben wir zur Zeit geradezu einen Hype dieses Ansatzes, der es ermöglicht, innerhalb einer IT-Infrastruktur, z.B. eines Unternehmens, die Anwendungsebene konsequent von der Daten-Ebene und deren Verwaltung zu trennen (vgl. Abb. 1) und zwar über das HTTP-Protokoll.
Abb. 1: REST-API trennt in einer IT-Infrastruktur die Anwendungen von den Daten
Zu den Unterschieden zwischen SOAP und REST verweise ich auf diesen guten Artikel, ohne selbst näher darauf einzugehen.
Im Zusammenhang mit Drupal wird REST gerade unter dem Stichwort Headless Drupal zum ganz großen Thema.
Da ich vorhabe, mich mit REST auch hier im Blog in weiteren Beiträgen näher zu beschäftigen, will ich an dieser Stelle nur auf einen Aspekt eingehen, nämlich inwieweit sich REST, Drupal und das hier präferierte Entwicklungssystem NetBeans vertragen.
Häufiger wird nämlich in Kommentaren danach gefragt, wie man REST-Services überhaupt testet. In der Regel wird dann auf das zur Zeit groß in Mode kommende kostenpflichtige Endwicklungssystem PHPStorm verwiesen. Dieses enthält einen REST-Client, der zum Testen verwendet werden kann.
Wer aber bei dem schlanken, stabilen und alle wesentliche Bedürfnisse befriedigende Entwicklungssystem NetBeans bleiben möchte, das es außerdem noch für Umme gibt, dem kann ich an dieser Stelle versichern, es eignet sich hervorragend zum Testen von REST-Service-Anwendungen.
Dazu benötigt man nur den REST-Client DHC als Chrome-Erweiterung. Dieser (vgl. Abb. 2) zeichnet sich gegenüber vielen anderen ähnlichen Clients dadurch aus, dass er REST-Anfragen komfortabel unter leicht anzulegenden Projektkategorien speichert, so dass man eine Anfrage in einem Projekt immer wieder aufrufen kann. Dies ist ein enormer Komfort-Gewinn. Eine Alternative wäre vielleicht das Client-Programm Postman, das ich noch nicht getestet habe.
Abb. 2: REST-Client DHC
Es ist nun überhaupt kein Problem, HTTP-Request, die mit DHC abgeschickt werden, in einem Drupal-Projekt unter NetBeans mit den XDebug-Funktionen z.B. mittels Setzen eines Breakpoints abzufangen (vgl. Abb. 3).
Abb. 3: Debuggen einer REST-Service-HTTP-Anfrage von DHC in einem Drupal-Projekt
Im Drupal-Projekt empfiehlt sich das Setzen eines Breakpoints z.B. in der Source-Datei C:\xampp\htdocs\drupal-7.38\sites\all\modules\services\resources\node_resource.inc. Diese Datei und die anderen im gleichen Ordner sollte sich der Drupal-Entwickler grundsätzlich zu Gemüte führen, um die Art und Weise, wie Drupal REST-Request handhabt, zu verstehen.
Wer also im Web nach der Antwort sucht, wie man REST-Services testet, der braucht sich also nicht mehr mit dem Hinweis auf das Konkurrenzsystem PHPStorm zufrieden zu geben. NetBeans ist ebenfalls eine ausgezeichnete Lösung, um REST-Services zu testen.
Außerdem bietet Drupal zusätzlich eine Unterstützung des Starter-Templates Angular JS Seed an (vgl. Abb. 4), welches sich vor allem im Zusammenhang mit Drupal als gute Wahl für ein leistungsfähige Javascript-Framework zur Entwicklung von REST-Anwendungen empfiehlt, weil sich auch die Drupal-Entwickler-Community sehr stark mit dem Framework AngularJS beschäftigt.
Abb. 4: AngularJS Unterstützung durch NetBeans
Zusammenfassung
Für REST-Projekte bietet NetBeans zusammen mit der Chrome-Extension DHC alles, was der Entwickler braucht.
Anmerkung: Verwendete Versionen:
Drupal-7.38
NetBeans IDE 8.0.2