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 lesen

Chronologische Liste und Netflix-Links -

Neuerscheinungen in der Übersicht -

Vorschau auf Film- und Serien-Highlights -

Mehr zum Thema

Webdesign

Adobe Illustrator wird im Webdesign immer beliebter. Wie Sie das Tool richtig einsetzen, erfahren Sie hier.
Facebook

Was sind die Implikationen für Unternehmen und Endanwender bei Facebooks neuer Suche Graph Search?
Online-Recht

Allgemeine Geschäftsbedingungen liest sich niemand gerne durch. Sie sind jedoch notwendig und äußerst sinnvoll. Worauf sie achten sollten.
Online-Recht in der Cloud

Dateien werden immer häufiger in der Cloud bereitgestellt. Rechtlich ist das jedoch durchaus problematisch. Wir klären über das Urheberrecht in der…
E-Commerce-Logistik

Für den Erfolg eines Online-Shops sind zahlreiche Faktoren verantwortlich. Neben Produktvielfalt und Darstellung der Waren gehört auch die Logistik.