Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

L'elemento Binding

Come collegare i portType ad un protocollo e come specificare le operazioni
Come collegare i portType ad un protocollo e come specificare le operazioni
Link copiato negli appunti

Ora che abbiamo definito anche il portType non ci rimane altro da fare che collegarlo con il protocollo SOAP che vedremo nel prossimo capitolo grazie all'elemento <binding>. All'interno di questa guida vedremo solamente un binding soap di tipo HTTP RPC, di gran lunga il più utilizzato. Ad ogni modo, e per completezza, sappiate che ne esistono ancora e che in futuro potranno esserne aggiunti altri.

<binding name="gestioneUtentiBinding" type="tns:gestioneUtentiType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getUserById">
<soap:operation soapAction="https://www.html.it/guida_ai_Web services/esempio.php/getUserById" style="rpc"/>
<input>
<soap:body use="encoded" namespace="https://www.html.it/guida_ai_Web services" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="https://www.html.it/guida_ai_Web services" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="saveUser">
<soap:operation soapAction="https://www.html.it/guida_ai_Web services/esempio.php/saveUser" style="rpc"/>
<input>
<soap:body use="encoded" namespace="https://www.html.it/guida_ai_Web services" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
</operation>
</binding>

Come vediamo nell'esempio esistono due elementi binding, il primo appartenente al namespace di WSDL ed il secondo appartenente a SOAP. Ovviamente sono due elementi diversi. Il primo ha due attributi, uno indica il nome dell'elemento (inserito a piacere) e l'altro il tipo del binding cioè il nome del nostro <portType>.

Una volta collegato il portType al binding possiamo proseguire con il secondo elemento di questo tipo, quello appartenente a SOAP. Anche questo elemento ha due attributi: uno stile che può essere inpostato a rpcdocument ed un attributo transport. In questo caso noi usaremo rpc come style poichè è adatto a messaggi che contengono parametri e valori di ritorno. Lo stile document si usa invece quando i messaggi contengono dei documenti ed è bene tener presente che utilizzandolo è necessario apportare delle modifiche (che non vedremo in questa guida) al modo in cui sono costruiti gli elementi <soap:body>. L'attributo transport indica il protocollo da utilizzare con soap per comunicare e come possiamo leggere nell'URI abbiamo scelto HTTP.

Giunti a questo punto, dopo aver definito i due elementi "binding" possiamo passare alla parte più interessante: definire i dettagli per le operazioni.

Con il primo tag operation, quello più esterno, richiamiamo le operazioni che abbiamo già definito nell'elemento <portType> e per ognuna di queste definiamo il valore soapAction e confermiamo lo stile attraverso soap:operation. Come valore di soapAction ho inserito un URI che nel mezzo ha un file php. Questo serve per sottolineare che l'attributo soapAction è molto importante (oltre che indispensabile) poichè ci servirà come descrizione dell'azione richiesta per il web service (e ne parleremo alla fine del capitolo SOAP).

All'interno del tag operation, dopo aver impostato l'elemento <soap:operation> bisogna elencare come saranno comunicati messaggi. Per farlo, ad ogni messaggio previsto dall'operazione che stiamo descrivendo dopo aver specificato il tipo con gli appositi tag (input, output o fault) va inserito un elemento soap:body.

<soap:body> specifica come le parti del messaggio appariranno all'interno dell'elemento body di SOAP (che vedremo più avanti) ed imposta la codifica da utilizzare se si è deciso di utilizzarla. Se non si desidera la codifica si può impostare l'attributo use con valore literal.

Ora che abbiamo concluso il binding manca un ultima piccola parte, la definizione del servizio:

<service name="ServizioUtenti">
<port name="GestioneUtenti" binding="tns:gestioneUtentiBinding">
<soap:address location="https://www.html.it/guida_ai_Web services/esempio.php"/>
</port>
</service>

Scegliamo il nome per il servizio e colleghiamo una porta al al binding; per questa porta definiamo un punto di comunicazione conl'attributo location (spiegheremo il suo ruolo nel capitolo SOAP).  Finalmente abbiamo incontrato e realizzato tutte le parti di un documento WSDL. Potete quindi vedere la versione completa del nostro WSDL.

Purtroppo WSDL è molto complesso e non è stato possibile vedere nel dettaglio ogni aspetto ed ogni variante. Tuttavia, giunti a questo punto, dovreste avere già le idee chiare su come si descrive un Web service e con pochi sforzi dovresteriuscire a leggere, interpretare o realizzare un documento WSDL.

Ti consigliamo anche