Teil 5: Webservices mit PHP selbst gemacht
- Webservices mit PHP selbst gemacht
- Teil 2: Webservices mit PHP selbst gemacht
- Teil 3: Webservices mit PHP selbst gemacht
- Teil 4: Webservices mit PHP selbst gemacht
- Teil 5: Webservices mit PHP selbst gemacht
Im Gegensatz zu SOAP-Services ist bei REST keine zusätzliche Definition über eine WSDL-Datei notwendig. Auf die Services können Sie über die verschiedenen HTTP-Methoden zugreifen. Je nach Webserver müssen allerdings noch einige Einstellungen vorgenommen werden, damit die nicht Webbrowser-typisc...
Im Gegensatz zu SOAP-Services ist bei REST keine zusätzliche Definition über eine WSDL-Datei notwendig. Auf die Services können Sie über die verschiedenen HTTP-Methoden zugreifen. Je nach Webserver müssen allerdings noch einige Einstellungen vorgenommen werden, damit die nicht Webbrowser-typischen Anfragen DELETE und PUT entsprechend verarbeitet werden. Für den populären Apache-Webserver genügt es, die folgenden beiden Parameter zu setzen.
Anschließend werden alle PUT- und DELETE-Anfragen an die angegebene PHP weitergeleitet, im Fall unseres Beispiels an die service.php.
Script PUT /service.php
Script DELETE /service.php
Für die Implementierung eines Clients zum Aufruf eines REST-Webservices kann nahezu jede Programmiersprache genutzt werden, die sich für die Erstellung von Webanwendungen eignet. Dies kann PHP sein, aber auch Javascript, Java oder Actionscript. Der Einfachheit halber wollen wir uns hier auf PHP beschränken. Auch hierzu kann wieder das Zend-Framework zum Einsatz kommen.
$client = new Zend_Rest_Client(
'https://localhost/service.php');
echo $client->sayHello('Timo')
->get();
REST besitzt einige Vorteile gegenüber SOAP. Einer der Vorteile ist, dass in der Regel Firewalls kein Problem für die Nutzung dieser Art von Services sind, da es komplett auf HTTP basiert. Auch verschlüsselte Kommunikation über SSL und Authentifizierung können einfach vom zugrunde liegenden HTTP-Protokoll mitgenutzt werden.

Ebenso ist die Lastverteilung bei Services mit hohem Nutzer-/Anfrageaufkommen mit den gängigen Mitteln moderner Webserver deutlich einfacher zu erledigen, als dies bei SOAP der Fall wäre.
Das REST-Prinzip hat in den letzten Monaten deutlich an Popularität gewonnen. Populäre Webapplikations-Frameworks, wie beispielsweise Ruby on Rails, arbeiten komplett nach dem REST-Prinzip und auch Content-Provider wie beispielsweise Yahoo stellen für viele ihrer Services ein REST-Interface zur Verfügung.
Fazit
Die Fortschritte von PHP im Bereich Webservices sind in der letzten Zeit unübersehbar. Weder SOAP- noch REST-Webservices stellen PHP mittlerweile vor größere Herausforderungen.
Zwar gibt es immer noch kleinere Schwierigkeiten bei einzelnen SOAP-WSDL-Dateien und es werden bei Weitem nicht alle möglichen SOAP-Standards unterstützt, aber im Großen und Ganzen funktioniert alles so wie es sollte. Besonders die Webservice-Klassen des Zend-Frameworks stechen hierbei positiv heraus, da hier sowohl für REST als auch SOAP entsprechende Implementierungen mitgeliefert werden.
Für welchen der beiden Kandidaten man sich bei Neuimplementierungen der Serverseite entscheidet, ist ein wenig eine Philosophiefrage. Beide haben wie so oft ihre Vor- und Nachteile.
REST verspricht das schnelle und unkomplizierte Veröffentlichen von Funktionen als Webservices ohne viel Overhead. Durch die Nutzung von URIs sind die Aufrufe der Services meist selbsterklärend und sprechend.
REST bietet sich vor allem dann an, wenn man ressourcenorientiert arbeiten kann, beispielsweise wenn man Daten von einem Businessobjekt lesen möchte.
Für SOAP spricht die umfangreiche Verbreitung in der Unternehmenswelt. Zudem eignet sich SOAP oft besser für komplexe Aufgabenstellungen und die Abbildung von Prozessen und Workflows.