Con questo esempio abbiamo visto brevemente com'è strutturato un messaggio SOAP e come fa a far interagire applicazione e Web service.
Tuttavia ci mancano ancora da capire due punti importanti:
- Dove dev'essere inviato il messaggio SOAP di richiesta per contattare il Web service?
- Come si collega questo documento SOAP ad HTTP per raggiungere il Web service?
Per rispondere bene a queste domande bisogna tornare un po' indietro, fino al capitolo WSDL. Dovresti ricordarti del tag <service>
e degli attributi "soapAction" che abbiamo impostato all'interno del binding.
Partiamo dal tag <service>
. Al suo interno abbiamo scelto il nome del nostro web service ed abbiamo creato una porta tramite l'elemento <port>
collegandola al binding SOAP. All'interno di quella porta abbiamo definito un indirizzo scrivendo questa riga:
<soap:address location="https://www.html.it/guida_ai_Web services/esempio.php"/>
L'attributo location
indica ad un applicazione che intende sfruttare il Web service dove deve inviare le sue richieste HTTP.
A questo punto SOAP viene incapsulato nel protocollo HTTP ed inviato sulla rete per raggiungere il Web service. All'URL fornito naturalmente, il Web service, è in attesa di ricevere delle richieste ed è pronto a dare le risposte più appropriate.
Per far comprendere al Web service che azione intende intraprendere, l'applicazione aggiunge all'header HTTP una stringa in grado di indicare l'azione SOAP da intraprendere (così come l'abbiamo inserita nel binding per ogni operazione definita).
Un header HTTP valido per il nostro esempio di questo capitolo potrebbe essere il seguente:
POST /guida_ai_Web services/esempio.php HTTP/1.1
Host: www.html.it
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 200
SOAPAction: "https://www.html.it/guida_ai_Web services/esempio.php/getUserById"
Finalmente siamo giunti alla fine delle lezioni teoriche (sono sicuro che sarai contento).
Abbiamo visto per prima cosa come si descrive un documento XML tramite XML Schema.
Grazie a queste prime informazioni siamo riusciti nel secondo capitolo a completare un documento WSDL valido, in grado di descrivere un nostro ipotetico Web service.
Una volta descritto questo nostro servizio web abbiamo cercato di capire come un servizio web dialoga con le applicazioni e credo che ora si possa dire "abbiamo raggiunto una discreta conoscenza sui web service".
Grazie a tutte queste nozioni possiamo passare adesso al prossimo capitolo dove vedremo qualche esempio pratico per sfruttare questa tecnologia con un linguaggio molto diffuso sul web e vederla finalmente all'opera.