Kommunikation über SOAP

(Auszug aus "Newsfeeds mit RSS und Atom" von Heinz Wittenbrink, erschienen bei Galileo Press, 2005)

Ich habe mehrfach darauf hingewiesen: Das Atom Publishing Protocol ist ein typischer REST-Webservice. Der Client teilt dem Server über HTTP-Botschaften mit, wie sich der Zustand auf dem Server verändern soll. Da es Clients gibt, die nur eingeschränkt zu einer Kommunikation via HTTP in den Lage sind, ist es auch möglich, dass Atom-Server und Clients über SOAP (Simple Object Access Protocol) miteinander kommunizieren. Atom-Server müssen nicht zwingend SOAP-befähigt sein. Für den Fall, dass sie SOAP verwenden, legt die Spezifikation aber Anforderungen fest. Ein SOAP-Client muss davon ausgehen können, dass ein Atom-Server diese Anforderungen erfüllt, wenn er SOAP überhaupt unterstützt.

Wie erwähnt, definiert SOAP Umschläge für Botschaften, die unabhängig von dem Protokoll sind, über das Botschaften ausgetauscht werden. Atom-Clients sollten, wenn es möglich ist, die richtigen HTTP-Methoden benutzen, so wie eben beschrieben. Wenn nicht, sollten sie die POST-Methode verwenden und einen SoapAction-HTTP-Header an den Server schicken, der wie folgt spezifiziert ist:

Die Action wird als Wert des Headers in einem URI angegeben, der mit "http://schemas.xmlsoap.org/wsdl/http/" beginnt; daran wird der Name der gewünschten HTTP-Methode gehängt. Wenn das an den Server geschickte XML-Dokument mit einem SOAP-Umschlag versehen wird, muss es der HTTP-Methode genau entsprechen.

Der SOAP-befähigte Server muss wohlgeformtes XML verarbeiten können. Es ist aber nicht erforderlich, dass er Processing Instructions oder DTDs verarbeiten kann. Außerdem muss der Server Inhalt akzeptieren, der in einen SOAP-Umschlag eingehüllt ist. Der Server muss seine Antworten als Inhalt eines SOAP-Umschlags an den Client schicken oder einen SOAP-Fehler erzeugen.

   

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema Newsfeeds mit RSS und Atom bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: