{"id":98,"date":"2014-06-18T23:35:09","date_gmt":"2014-06-18T21:35:09","guid":{"rendered":"http:\/\/www.valeriofinazzo.it\/wordpress\/?p=98"},"modified":"2014-06-18T23:35:09","modified_gmt":"2014-06-18T21:35:09","slug":"spring-ws-tutorial-1-prima-il-contratto","status":"publish","type":"post","link":"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/spring-ws-tutorial-1-prima-il-contratto\/","title":{"rendered":"SPRING WS &#8211; TUTORIAL 1 &#8211; PRIMA IL CONTRATTO"},"content":{"rendered":"<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Vediamo come usare Spring Ws per la realizzazione di un web service.<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Spring Ws parte dalla definizione del contratto e solo successivamente affronta il problema dell&#8217;implementazione. Il vantaggio di questo approccio \u00e8 quello di permettere allo sviluppatore di concentrarsi sul design del servizio e solo successivamente sulla stesura del codice.<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Scopo di questa serie di articoli \u00e8 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&#8217;autore.<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Definiamo prima di tutto la struttura dati utilizzata dal web service.<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Per semplificazione la struttura dati del libro \u00e8 di questo tipo:<\/p>\n<address>\n<pre class=\"lang:default decode:true \">&lt;complexType name=\"LibroType\"&gt;\r\n&lt;sequence&gt;\r\n&lt;element name=\"titolo\" type=\"string\" maxOccurs=\"1\" minOccurs=\"1\"&gt;&lt;\/element&gt;\r\n&lt;element name=\"nome\" type=\"string\" maxOccurs=\"1\" minOccurs=\"1\"&gt;&lt;\/element&gt;\r\n&lt;element name=\"cognome\" type=\"string\" maxOccurs=\"1\" minOccurs=\"1\"&gt;&lt;\/element&gt;\r\n&lt;\/sequence&gt;\r\n&lt;\/complexType&gt;<\/pre>\n<p>mentre richiesta e risposta hanno questa struttura<\/p>\n<\/address>\n<address>\n<pre class=\"lang:default decode:true \">&lt;element name=\"RicercaLibroRequest\"&gt; \r\n&lt;complexType&gt; &lt;sequence&gt; &lt;element name=\"titolo\" type=\"string\" maxOccurs=\"1\" minOccurs=\"0\"&gt;&lt;\/element&gt; &lt;element name=\"nome\" type=\"string\" maxOccurs=\"1\" minOccurs=\"0\"&gt;&lt;\/element&gt; &lt;element name=\"cognome\" type=\"string\" maxOccurs=\"1\" minOccurs=\"0\"&gt;&lt;\/element&gt; &lt;\/sequence&gt; &lt;\/complexType&gt; &lt;\/element&gt;\r\n&lt;element name=\"RicercaLibroResponse\"&gt; &lt;complexType&gt; &lt;sequence&gt; &lt;element name=\"libro\" type=\"string\" maxOccurs=\"unbounded\" minOccurs=\"0\"&gt;&lt;\/element&gt; &lt;\/sequence&gt; &lt;\/complexType&gt; \r\n&lt;\/element&gt;<\/pre>\n<p>Definite le strutture dati possiamo definire il wsdl, ovvero il file che descrive il web service in modo completo. Usando Spring ws non \u00e8 necessario farlo a mano, in quanto \u00e8 disponibile un modulo che a partire dalla struttura dati indicata sopra pu\u00f2 generare il file a runtime. Nel prossimo articolo vedremo la struttura del file per ripassare i concetti sul contratto.<\/p>\n<\/address>\n","protected":false},"excerpt":{"rendered":"<p>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&#8217;implementazione. Il vantaggio di questo approccio \u00e8 quello di permettere allo sviluppatore di concentrarsi sul design del servizio e solo successivamente sulla stesura del codice. Scopo di questa serie di &hellip; <a href=\"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/spring-ws-tutorial-1-prima-il-contratto\/\" class=\"more-link\">Continua la lettura di <span class=\"screen-reader-text\">SPRING WS &#8211; TUTORIAL 1 &#8211; PRIMA IL CONTRATTO<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[20],"tags":[21,22],"_links":{"self":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/98"}],"collection":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/comments?post=98"}],"version-history":[{"count":2,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/98\/revisions"}],"predecessor-version":[{"id":138,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/98\/revisions\/138"}],"wp:attachment":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/media?parent=98"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/categories?post=98"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/tags?post=98"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}