{"id":11843,"date":"2016-06-21T09:14:10","date_gmt":"2016-06-21T07:14:10","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=11843"},"modified":"2016-06-21T09:14:10","modified_gmt":"2016-06-21T07:14:10","slug":"slim-framework-api-rest-rapide-in-php","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/slim-framework-api-rest-rapide-in-php\/","title":{"rendered":"Slim Framework: API REST rapide in PHP"},"content":{"rendered":"<p><a href=\"http:\/\/www.slimframework.com\/\" target=\"_blank\">Slim <\/a>\u00e8 definito un <strong>micro-framework in PHP<\/strong> che permette di <strong>realizzare API REST molto rapidamente<\/strong>. Sappiamo che quest&#8217;ultima \u00e8 una metodologia ormai onnipresente nei servizi web: efficace, efficiente, usa solo ci\u00f2 che HTTP mette a disposizione e dialoga con ogni tecnologia. Ad arricchire gli scenari di utilizzo contribuiscono proprio i framework come Slim che rendono facile ed immediata la realizzazione delle API.<\/p>\n<p>La homepage del sito Internet mostra un esempio breve ma significativo:<\/p>\n<pre class=\"lang:php decode:true \">$app = new \\Slim\\App;\r\n$app-&gt;get('\/hello\/{name}', function (Request $request, Response $response) {\r\n    $name = $request-&gt;getAttribute('name');\r\n    $response-&gt;getBody()-&gt;write(\"Hello, $name\");\r\n\r\n    return $response;\r\n});\r\n$app-&gt;run();<\/pre>\n<p>Come si vede, le fasi di utilizzo sono, di massima, tre:<\/p>\n<ul>\n<li>si crea l&#8217;oggetto che rappresenta il framework;<\/li>\n<li>si definiscono le funzionalit\u00e0 delle API;<\/li>\n<li>infine si attiva il framework tramite il metodo <em>run()<\/em>.<\/li>\n<\/ul>\n<p>Interessante notare come vengano resi disponibili oggetti che rappresentano la richiesta HTTP (Request) e la risposta (Response): ognuno di essi offre metodi per accedere ai dati e agli attributi delle intestazioni.<\/p>\n<p>Il Framework \u00e8 ricco di funzionalit\u00e0 utili come <em>Routing<\/em>, <em>cache HTTP<\/em> e gestione dei <em>Cookie<\/em> nonch\u00e8 la possibilit\u00e0 di creare <em>Middleware<\/em> ossia oggetti che, dopo essere stati registrati nell&#8217;applicazione, vengono invocati prima dell&#8217;esecuzione delle chiamate REST: utilizzi dei Middleware che vengono alla mente all&#8217;istante sono il logging delle chiamate, compressione\/decompressione dei messaggi, autenticazione.<\/p>\n<p><strong>Slim \u00e8 utilissimo per creare delle API velocemente<\/strong>, ad esempio, per <strong>far dialogare una app mobile con un proprio servizio web<\/strong>. C&#8217;\u00e8 comunque da notare che questa soluzione \u00e8 pi\u00f9 adatta ad applicazioni non troppo complesse visto che non dispone di una propria architettura interna per strutturare maggiormente la logica di business e l&#8217;accesso ai dati.<\/p>\n<p>Provatelo nei vostri progetti e fateci sapere che ne pensate.<\/p>\n<p>Alla prossima!<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Slim \u00e8 definito un micro-framework in PHP che permette di realizzare API REST molto rapidamente. Sappiamo che&#8230;<\/p>\n","protected":false},"author":561,"featured_media":12140,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[7],"tags":[1624,131,1639,239],"class_list":["post-11843","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-strumenti-di-sviluppo","tag-api-rest","tag-php","tag-php-framework","tag-rest"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/11843","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=11843"}],"version-history":[{"count":5,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/11843\/revisions"}],"predecessor-version":[{"id":12141,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/11843\/revisions\/12141"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/12140"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=11843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=11843"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=11843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}