Vediamo come usare Spring Ws per la realizzazione di un web service.
Spring Ws parte dalla definizione del contratto e solo successivamente affronta il problema dell’implementazione. Il vantaggio di questo approccio è quello di permettere allo sviluppatore di concentrarsi sul design del servizio e solo successivamente sulla stesura del codice.
Scopo di questa serie di articoli è la realizzazione di un web service per la ricerca di un libro da un catalogo. La ricerca del libro avviene per titolo o per cognome dell’autore.
Definiamo prima di tutto la struttura dati utilizzata dal web service.
Per semplificazione la struttura dati del libro è di questo tipo:
1 2 3 4 5 6 7 |
<complexType name="LibroType"> <sequence> <element name="titolo" type="string" maxOccurs="1" minOccurs="1"></element> <element name="nome" type="string" maxOccurs="1" minOccurs="1"></element> <element name="cognome" type="string" maxOccurs="1" minOccurs="1"></element> </sequence> </complexType> |
mentre richiesta e risposta hanno questa struttura
1 2 3 4 |
<element name="RicercaLibroRequest"> <complexType> <sequence> <element name="titolo" type="string" maxOccurs="1" minOccurs="0"></element> <element name="nome" type="string" maxOccurs="1" minOccurs="0"></element> <element name="cognome" type="string" maxOccurs="1" minOccurs="0"></element> </sequence> </complexType> </element> <element name="RicercaLibroResponse"> <complexType> <sequence> <element name="libro" type="string" maxOccurs="unbounded" minOccurs="0"></element> </sequence> </complexType> </element> |
Definite le strutture dati possiamo definire il wsdl, ovvero il file che descrive il web service in modo completo. Usando Spring ws non è necessario farlo a mano, in quanto è disponibile un modulo che a partire dalla struttura dati indicata sopra può generare il file a runtime. Nel prossimo articolo vedremo la struttura del file per ripassare i concetti sul contratto.