cos'è SOAP
SOAP (Simple Object Access Protocol) è un protocollo di comunicazione per scambiare informazioni tra applicazioni via HTTP attraverso i firewall; semplice ed estensibile è indipendente dalla piattaforma e dal linguaggio, è basato su XML ed è uno standard W3C.
Un messaggio SOAP è un normale documento XML contenente i seguenti elementi:
- Envelope, che distingue un messaggio SOAP
- Header (opzionale)
- Body, che contiene la richiesta e la risposta
- Fault (opzionale), per gestire gli eventuali errori
Questi elementi sono dichiarati nel namespace default
http://www.w3.org/2001/12/soap-envelope,
mentre le codifiche e i tipo di dato stanno in
http://www.w3.org/2001/12/soap-encoding.
Entrambi devono essere utilizzati obbligatoriamente.
scheletro di un messaggio SOAP
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header>
...
</soap:Header>
<soap:Body>
...
<soap:Fault>
...
</soap:Fault>
</soap:Body>
</soap:Envelope>
L'elemento figlio del Body può essere (e di solito lo sarà qualificato da un Namespace.
L'elemento Fault è definito da SOAP e contiene i sottoelementi: faultcode, faultstring, faultactor e detail (informazioni specifiche). I faultcode dono: VersionMismatch, MustUnderstand Client, Server.
Protocollo HTTP
il messaggio di richiesta sarà:
POST /item HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 250
e la risposta:
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
oppure:
400 Bad Request
Content-Length: 0
il tutorial W3Schools