sabato 8 dicembre 2007

WebService per cambio valute

Io adoro i web service. L'idea che Internet venga usato come rete di servizi invece che rete di informazioni la trovo interessante.
E non per niente, su questo argomento, ci ho fatto la tesi della laurea di primo livello.

Ed ora, dopo tre anni, mi trovo ad usarli per la prima volta in ambito lavorativo. Altri progetti in cui avevo proposto di utilizzarli non sono mai partiti. Invece ora devo accedere al più classico dei web service: il cambio di valuta.

Dopo un po' di giri per la rete ecco qui quello che fa al caso mio: http://www.webservicex.net/WS/WSDetails.aspx?CATID=2&WSID=10.

c'è anche, ovviamente, il link al descrittore del webservice: il WSDL.

In pochi step riesco ad accedervi dal mio codice java:
- scaricare apache axis
- dare in pasto il descrittore a WSDL2Java, che genera classi java per accedere al web service lì descritto: java org.apache.axis.wsdl.WSDL2Java http://www.webservicex.net/CurrencyConvertor.asmx?WSDL (dopo aver messo i jar di axis nel classpath)
- importare le classi generate nel mio progetto
- utilizzare le classi:

CurrencyConvertor convertor = new CurrencyConvertorLocator();
double rate = convertor.getCurrencyConvertorSoap().conversionRate(Currency.EUR, Currency.USD);

Ed il gioco è fatto: attraverso il contenuto del WSDL, axis ha generato il metodo conversionRate che effettua (su un protocollo condiviso in formato xml, SOAP) la chiamata "ConversionRate" al webservice passandogli due Currency come parametri, e ricevendo come risposta un double.

In questo modo io non so com'è la logica dietro all'esecuzione del metodo, ma so che ci posso accedere tranquillamente ed essendo tutto basato su XML, ho l'interoperabilità tra linguaggi, per cui, per esempio, posso scrivere un web service in Java ed accedervi da Perl.

Nessun commento: