Datentausch per Webservice

Teil 4: Webservices mit PHP selbst gemacht

Das Zend-Framework bietet für einige dieser frei verfügbaren Services eine fertige API an, sodass man hierfür nicht mehr mit WSDL-Dateien und Webservice-Clients arbeiten muss.

Alternative: REST

SOAP-Webservices haben sich über lange Zeit den Status des Defacto-Standards für Webservices erarbeitet. Ihnen eilt aber der Ruf voraus, umständlich und mit viel Overhead behaftet zu sein. Wie wir bereits gesehen haben, ist dieser Ruf nicht ganz unbegründet.

Aus dem Jahr 2000 stammt ein alternativer Architekturentwurf, der im Rahmen einer Dissertationsarbeit von Roy Fielding entstand. Der REST genannte Entwurf steht für Representational State Transfer. Bei REST sind alle Services sogenannte Ressourcen, die alle eine eindeutige URI besitzen.

Komplett per HTTP

Im Gegensatz zu SOAP konzentriert sich REST komplett auf das HTTP-Protokoll als Kommunikationsmittel. Dank des World Wide Web ist HTTP heute ein weit verbreiteter und absolut stabiler Standard. Webbrowser nutzen das HTTP-Protokoll um Daten vom Webserver abzufragen und dorthin zu übertragen. Browser nutzen dazu die zwei Anfragearten GET und POST des HTTP-Protokolls. Anfragen über GET sind prinzipiell dazu gedacht, Daten vom Server abzurufen.

Die Informationen, die für den Abruf der Daten benötigt werden, können direkt in der URL spezifiziert werden (zum Beispiel http://domain/user/get/id/17). Per POST werden Daten an den Server übertragen. POST ist daher die Methode der Wahl bei der Übertragung von Formulardaten.

Damit sind die Möglichkeiten eines Browsers ausgeschöpft, aber die des HTTP-Protokolles noch nicht. HTTP definiert noch weitere Methoden.

Put, Delete, Get, Post

Im Moment sind für uns lediglich PUT und DELETE interessant. Auf diesen vier Methoden basiert REST, um verschiedene Operationen auf eine Ressource auszuführen. Bleiben wir bei dem Beispiel eines Benutzers für eine Ressource, dann haben die vier Operationen folgende Bedeutung:

GET: Die GET-Methode sorgt wie bei Webseiten dafür, dass Daten einer Ressource gelesen werden. Der Aufruf der URL http://localhost/User/17 würde so beispielsweise den Benutzer mit der ID 17 lesen und an den aufrufenden Client zurückliefern. • POST: Die POST-Methode dient zum Schreiben neuer Einträge. Ganz ähnlich wie bei POST-Aufrufen aus einer Webseite (zum Beispiel Formulare) werden die Daten nicht in der URL, sondern im Body der HTTP-Nachricht übertragen. • DELETE: Hier ist der Name der Operation eigentlich selbsterklärend. Der Aufruf einer URL per DELETE-Methode führt dazu, dass ein Objekt gelöscht wird. Der Aufruf der URL http://localhost/User/17 würde beispielsweise dazu führen, dass der Benutzer mit der ID 17 gelöscht wird. • PUT: Die PUT-Methode entspricht einem Update einer Ressource. Auch hier werden die Daten im Body der HTTP-Nachricht an den Server übertragen.

Wie im folgenden Beispiel zu sehen ist, spielt die Art des Webservices bei der Verwendung des Zend-Frameworks kaum eine Rolle. Die Service-Klasse an sich bleibt unverändert. Der einzige Unterschied liegt in der Verwendung der Zend_Rest_Server-Klasse anstelle der Zend_Soap_Server.

Implementierung des Servers

<?php
require_once 'Zend/Rest/Server.php';
/**
* Say Hello
*
* @param string $who
* @return SimpleXMLElement
*/
function sayHello($who) {
return return 'Hallo '.$who;
}
$server = new Zend_Rest_Server();
$server->addFunction('sayHello);
$server->handle();
?>

Damit haben wir unseren ersten REST-Webservice-Server fertiggestellt.

Mehr zum Thema

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…