{"id":12664,"date":"2017-07-26T17:59:44","date_gmt":"2017-07-26T15:59:44","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=12664"},"modified":"2017-07-26T18:05:03","modified_gmt":"2017-07-26T16:05:03","slug":"trasformare-un-database-postgresql-in-un-servizio-rest","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/trasformare-un-database-postgresql-in-un-servizio-rest\/","title":{"rendered":"Trasformare un database PostgreSQL in un servizio REST"},"content":{"rendered":"<p><a href=\"https:\/\/www.postgresql.org\/\" target=\"_blank\" rel=\"noopener\">PostgreSQL<\/a> \u00e8 uno dei DBMS relazionali che ha fatto pi\u00f9 scuola nel settore. Esiste dagli anni &#8217;70 e si \u00e8 sempre sforzato di essere al passo con i tempi, includendo\u00a0&#8211; nelle versioni pi\u00f9 recenti &#8211; anche tipi di dato che lo avvicinassero al mondo NoSQL. I numeri delle statistiche lo proclamano come una delle soluzioni per la persistenza di dati pi\u00f9 diffuse al mondo anche se non ai livelli di Oracle, MySQL o Microsoft SQL Server.<\/p>\n<p>Il servizio di cui parliamo in questo post si chiama <a href=\"http:\/\/postgrest.com\/\" target=\"_blank\" rel=\"noopener\">PostgREST<\/a> e permette di<strong> trasformare direttamente un database PostgreSQL in un servizio REST<\/strong>, esponendo i suoi dati sotto opportune API.<\/p>\n<p>Essenzialmente, \u00e8 necessario predisporre un database PostgreSQL ed installare PostgREST seguendo le <a href=\"http:\/\/postgrest.com\/install\/server\/#installation\" target=\"_blank\" rel=\"noopener\">istruzioni<\/a> relative alla modalit\u00e0 preferita.<\/p>\n<p>Una volta avviato il server, le tabelle del database diverranno gli <em>endpoint<\/em> del servizio REST e vi si potr\u00e0 interagire evitando tutto il lavoro necessario alla creazione di uno strato di operazioni CRUD.<\/p>\n<p>In pratica, quello che PostgREST\u00a0fa \u00e8 trasformare una chiamata di rete nella corrispondente attivit\u00e0 del linguaggio SQL. Inoltre, i dati scambiati potranno essere in CSV, il corrispondente naturale delle tabelle nel formato testuale: ci\u00f2 eviter\u00e0 di dover affrontare conversioni da e verso formati come JSON e XML.<\/p>\n<p>Un servizio simile va sicuramente provato. La sua duttilit\u00e0 dimostra come con semplicit\u00e0 si possa alleviare di molto il lavoro dello sviluppatore dal lato\u00a0<em>backend<\/em>, offrendo una soluzione basata su uno dei pi\u00f9 solidi DBMS della storia. Nella documentazione ufficiale si potranno inoltre trovare approfondimenti\u00a0riguardanti soprattutto gli aspetti di sicurezza e performance.<\/p>\n<p>E voi avete mai provato soluzioni simili per i vostri servizi REST ? Commentate e fateci sapere!<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PostgreSQL \u00e8 uno dei DBMS relazionali che ha fatto pi\u00f9 scuola nel settore. Esiste dagli anni &#8217;70&#8230;<\/p>\n","protected":false},"author":561,"featured_media":13173,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[30,481],"tags":[1624,1821,1530,1819,1748,1985],"class_list":["post-12664","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-materiale-open-source","category-risorse-utili","tag-api-rest","tag-crud","tag-database","tag-dbms","tag-postgresql","tag-postgrest"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12664","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=12664"}],"version-history":[{"count":4,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12664\/revisions"}],"predecessor-version":[{"id":13175,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12664\/revisions\/13175"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/13173"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=12664"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=12664"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=12664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}