{"id":29455,"date":"2015-03-28T12:12:57","date_gmt":"2015-03-28T11:12:57","guid":{"rendered":"https:\/\/artigianodelsoftware.wordpress.com\/?p=29455"},"modified":"2015-03-28T12:12:57","modified_gmt":"2015-03-28T11:12:57","slug":"chiamate-rest-first-look","status":"publish","type":"post","link":"https:\/\/artigianodelsoftware.it\/blog\/2015\/03\/28\/chiamate-rest-first-look\/","title":{"rendered":"Chiamate REST &#8211; First look"},"content":{"rendered":"<div class=\"pdfprnt-buttons pdfprnt-buttons-post pdfprnt-top-right\"><a href=\"javascript: imageToPdf()\" class=\"pdfprnt-button pdfprnt-button-pdf\" target=\"_self\"><img src=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/plugins\/pdf-print\/images\/pdf.png\" alt=\"image_pdf\" title=\"Visualizza PDF\" \/><\/a><a href=\"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/posts\/29455?print=print\" class=\"pdfprnt-button pdfprnt-button-print\" target=\"_blank\"><\/a><\/div><blockquote>\n<h1>Chiamate REST<\/h1>\n<\/blockquote>\n<p>In questo post, iniziamo ad affrontare un tema molto importante, che riguarda come poter utilizzare le chiamate REST per poter programmare i vari prodotti della Atlassian. Si tratta del primo di tanti post che saranno dedicati all&#8217;argomento.<\/p>\n<p><a href=\"http:\/\/www.nazcabox.com\/wp-content\/uploads\/2014\/05\/chiamate-rest-php-158x158.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter\" src=\"http:\/\/www.nazcabox.com\/wp-content\/uploads\/2014\/05\/chiamate-rest-php-158x158.jpg\" alt=\"\" width=\"200\" height=\"200\" \/><\/a><\/p>\n<blockquote>\n<h1>Un p\u00f2 di definizioni<\/h1>\n<\/blockquote>\n<p>Partiamo fornendo alcune definizioni, che saranno utili per chiarire un p\u00f2 di cose. La definizione di REST pu\u00f2 essere reperita a questo <a href=\"http:\/\/it.wikipedia.org\/wiki\/Representational_State_Transfer\" target=\"_blank\">link<\/a>, da fonte WIKIPEDIA. Un altro esempio che consiglio \u00e8 anche questo <a href=\"https:\/\/otherplus.com\/tech\/wordpress-json-rest-api\/\" target=\"_blank\">link<\/a>, dove trovare alcuni esempi e definizioni. Altra definizione importante \u00e8 quella di\u00a0<a href=\"http:\/\/it.wikipedia.org\/wiki\/JSON\" target=\"_blank\">JSON<\/a>, ovvero di un sistema di interscambio dei dati molto adatto per queste architetture.<\/p>\n<p>Fondamentalmente, REST indica una architettura utilizzata per lo scambio di informazioni, per andare direttamente al dunque :-).<\/p>\n<p>I vari prodotti della Atlassian, quali Confluence e JIRA, mettono a disposizione un insieme di API, gi\u00e0 preconfezionate, attraverso il quale scambiare\/reperire informazioni dai\u00a0vari prodotti.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/marketplace-cdn.atlassian.com\/files\/com.atlassian.labs.rest-api-browser\/screenshots\/43dbd62f-3ef8-4a9b-878d-91a6e1fec457_crsl.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter\" src=\"https:\/\/marketplace-cdn.atlassian.com\/files\/com.atlassian.labs.rest-api-browser\/screenshots\/43dbd62f-3ef8-4a9b-878d-91a6e1fec457_crsl.png\" alt=\"\" width=\"560\" height=\"259\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<blockquote>\n<h1>Iniziamo &#8230;<\/h1>\n<\/blockquote>\n<p>Vediamo adesso come partire per sfruttare queste informazioni. Iniziamo subito con un esempio pratico, che utilizza Confluence, per meglio chiarire il tutto. Per richiamare le API occorre sfruttare una\u00a0URL come il seguente esempio:<\/p>\n<p>&nbsp;<\/p>\n<blockquote>\n<p style=\"text-align:left;\"><em><strong>http:\/\/192.168.114.140:8090\/confluence\/rest\/api\/XXXXXXXXX<\/strong><\/em><\/p>\n<\/blockquote>\n<p style=\"text-align:left;\">dove\u00a0<em><strong>XXXXXXXXX\u00a0<\/strong><\/em>rappresenta la api che si vuole richiamare.<\/p>\n<p style=\"text-align:left;\">Ovviamente, si tratta di un esempio di URL che ho ricavato dalla mia installazione di test. Se andiamo ad usare una api molto semplice, quale\u00a0<em><strong>CONTENT<\/strong><\/em>, che restituisce il contenuto del nostro Confluence, questo \u00e8 il risultato:<\/p>\n<p style=\"text-align:left;\"><a href=\"https:\/\/artigianodelsoftware.files.wordpress.com\/2015\/03\/rest01.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-large wp-image-55091\" src=\"https:\/\/artigianodelsoftware.files.wordpress.com\/2015\/03\/rest01.png?w=660\" alt=\"REST01\" width=\"660\" height=\"251\" srcset=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2015\/03\/rest01.png 1330w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2015\/03\/rest01-300x114.png 300w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2015\/03\/rest01-768x292.png 768w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2015\/03\/rest01-1024x390.png 1024w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2015\/03\/rest01-1200x457.png 1200w\" sizes=\"(max-width: 660px) 100vw, 660px\" \/><\/a><\/p>\n<p style=\"text-align:left;\">Lanciando la API, senza fornire alcun parametro, quello che otteniamo \u00e8 un <a href=\"http:\/\/it.wikipedia.org\/wiki\/JSON\" target=\"_blank\">JSON<\/a>, che rappresenta il contenuto del nostro Confluence. Se iniziamo a raffinare la chiamata, passando uno dei parametri quale l&#8217;ID:<\/p>\n<blockquote>\n<p style=\"text-align:left;\">http:\/\/192.168.114.140:8090\/confluence\/rest\/api\/content\/884738?status<\/p>\n<p style=\"text-align:left;\">\n<\/blockquote>\n<p style=\"text-align:left;\"><a href=\"https:\/\/artigianodelsoftware.files.wordpress.com\/2015\/03\/rest02.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-large wp-image-55099\" src=\"https:\/\/artigianodelsoftware.files.wordpress.com\/2015\/03\/rest02.png?w=660\" alt=\"REST02\" width=\"660\" height=\"129\" srcset=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2015\/03\/rest02.png 1338w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2015\/03\/rest02-300x59.png 300w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2015\/03\/rest02-768x150.png 768w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2015\/03\/rest02-1024x201.png 1024w, https:\/\/artigianodelsoftware.it\/blog\/wp-content\/uploads\/2015\/03\/rest02-1200x235.png 1200w\" sizes=\"(max-width: 660px) 100vw, 660px\" \/><\/a><\/p>\n<p style=\"text-align:left;\">Quello che otteniamo \u00e8 il contenuto della seguente pagina:<\/p>\n<p style=\"text-align:left;\"><a href=\"https:\/\/artigianodelsoftware.files.wordpress.com\/2014\/12\/acme02.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-large wp-image-4112\" src=\"https:\/\/artigianodelsoftware.files.wordpress.com\/2014\/12\/acme02.png?w=660\" alt=\"acme02\" width=\"660\" height=\"278\" \/><\/a><\/p>\n<p style=\"text-align:left;\">che avevo creato per mostrare un esempio di <a title=\"Creare una semplice scheda cliente con Confluence\" href=\"https:\/\/artigianodelsoftware.wordpress.com\/2014\/12\/10\/creare-una-semplice-scheda-cliente-con-confluence\/\" target=\"_blank\">page properties<\/a> :-).<\/p>\n<blockquote>\n<h1 style=\"text-align:left;\">Quindi?<\/h1>\n<\/blockquote>\n<p>Quello che otteniamo \u00e8 un grande risultato. A questo punto si apre un ventaglio di opportunit\u00e0. Possiamo a questo punto leggere\/scrivere tutta una serie di informazioni sul nostro Confluence, semplicemente sfruttando queste <em><strong>API<\/strong><\/em>.\u00a0In questo modo si possono realizzare nuove funzionalit\u00e0 per tutti gli strumenti della Atlassian.<\/p>\n<p>&nbsp;<\/p>\n<blockquote>\n<h1>Conclusioni<\/h1>\n<\/blockquote>\n<p>Abbiamo visto, in questo post, in primo esempio di come poter accedere a queste api, di quali cose sono necessarie conoscere per poterle utilizzare e che risultati forniscono. Nei prossimi post Esamineremo degli esempi di utilizzo e di come poter utilizzare e chiamate REST per realizzare delle nuove funzionalit\u00e0.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<div class=\"clearfix\"><span class='ldc-ul_cont' onclick=\"alter_ul_post_values(this,'29455','like')\" >Likes<img src=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/plugins\/like-dislike-counter-for-posts-pages-and-comments\/images\/up.png\" \/>(<span>0<\/span>)<\/span><span class='ldc-ul_cont' onclick=\"alter_ul_post_values(this,'29455','dislike')\" >Dislikes<img src=\"https:\/\/artigianodelsoftware.it\/blog\/wp-content\/plugins\/like-dislike-counter-for-posts-pages-and-comments\/images\/down.png\" \/>(<span>0<\/span>)<\/span><\/div>","protected":false},"excerpt":{"rendered":"<p>Chiamate REST In questo post, iniziamo ad affrontare un tema molto importante, che riguarda come poter utilizzare le chiamate REST per poter programmare i vari prodotti della Atlassian. Si tratta del primo di tanti post che saranno dedicati all&#8217;argomento. Un<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","footnotes":""},"categories":[3,4,7,13,14,16,22],"tags":[34,35,48,58,61,70,82,89,92,108],"_links":{"self":[{"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/posts\/29455"}],"collection":[{"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/comments?post=29455"}],"version-history":[{"count":0,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/posts\/29455\/revisions"}],"wp:attachment":[{"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/media?parent=29455"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/categories?post=29455"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/artigianodelsoftware.it\/blog\/wp-json\/wp\/v2\/tags?post=29455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}