SOAP::Lite Web Service erweitern

Es kommt oft vor, dass Web Services der Response, die sie an den Aufrufer schicken einen SOAP-Header hinzufügen müssen. Üblicherweise geschieht dies dann, wenn ein Web Service eine Mittlerrolle hat, aber rein technisch darf jeder beteiligte Service der Response Header hinzufügen. Glücklicherweise ist das Hinzufügen von Headern zur Response so einfach wie das Zurückgeben eines Elements mit Namen im SOAP-Body. Geben Sie einfach ein SOAP::Header-Element auf dieselbe Weise zurück wie ein SOAP::Data-Element. SOAP::Lite wird automatisch jedes SOAP::Header-Objekt umwandeln und es der Response hinzufügen – in derselben Reihenfolge, wie es zurückgegeben wird. Hier ein Beispiel:


1 #!/usr/bin/perl
2 # Dateiname: Echo.pm
3 package Echo;
4 use strict;
5 use vars qw(@ISA);
6 @ISA = qw(SOAP::Server::Parameters);
7 sub echo {
8 my $self = shift;
9 my $envelope = pop;
10 my $str = $envelope->dataof("//echo/whatToEcho")->value;
11 return SOAP::Data->name("whatWasEchoed" => "$str"),
12 SOAP::Header->name("echoHeader1" => "something"),
13 SOAP::Header->name("echoDate" => time());
14 }
15 1;

Dieser Code erzeugt die folgende SOAP-Response:


<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/
encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Header>
<echoHeader1 xsi:type="xsd:string">something</echoHeader1>
<echoDate xsi:type="xsd:int">1019579390</echoDate>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<namesp1:echoResponse xmlns:namesp1="urn:Echo">
<whatWasEchoed xsi:type="xsd:string">Echo this statement</
whatWasEchoed>
</namesp1:echoResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Themenseiten: Software, Webentwicklung

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

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu SOAP::Lite Web Service erweitern

Kommentar hinzufügen

Schreibe einen Kommentar

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