Nutzen von Web Services mit PHP

XML-RPC wird im Vergleich zu SOAP zu einem immer beliebteren Kommunikationsmittel für Web Services, besonders in Umgebungen mit mehreren Servern, da XML-RPC sehr gut die Nutzung verschiedener, über mehrere Server verteilter Komponenten ermöglichen kann.

Wie SOAP wurde auch XML-RPC nicht in die aktuelle stabile Version von PHP integriert. Im Gegensatz zu SOAP lässt es sich aber ohne zu viele Servereinstellungen implementieren. Das Paket Pear XML-RPC kann von PHP.Net heruntergeladen werden. Es besteht aus zwei Dateien: Server.PHP und RPC.php.

Mit Pear SOAP kann ein Programmierer das Konsumieren eines bestehenden Web Service durch Einbinden der Datei RPC.php per require ermöglichen. Um dann den Service tatsächlich zu nutzen, würde er:

  • die Funktionsparameter definieren
  • die Funktion definieren
  • die Funktion mit den definierten Parametern aufrufen
  • die Antwort parsen.

Listing C ist ein Beispiel für Code, mit dem ein Web Service mit Pear XML-RPC konsumiert wird.

REST

Amazon.com und eine Reihe kleinerer Organisationen setzen REST (Representational State Transfer) als Alternative zu SOAP ein. REST-Aufrufe finden über HTTP statt und Parameter werden im Abfrage-String angegeben. Das Ergebnis ist, dass man sich auf Client- und Server-Seite nicht mit den HTTP-Headern beschäftigen muss.

Ein Web Service-Request würde zum Beispiel so ähnlich wie Listing D aussehen.

Wenn die Webseite MyWebService.php diesen Request erhält, antwortet sie mit einem XML-Dokument (oder so ziemlich jedem anderen entsprechenden Dokument). Der Programmierer kann dann dieses Dokument beliebig bearbeiten – wahrscheinlich mit XSLT, um es als HTML-Dokument für die Anzeige in einem Browser zu formatieren.

Themenseiten: Software, Webentwicklung

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Nutzen von Web Services mit PHP

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *