Gitbaritalian
developer
podcast
13

Programmazione: Api con graphql vs rest

Serie 1
Episodio 13
Durata 19 minuti

Sviluppare una api è sempre più importante nella realizzazione dei sistemi specie se questi sono su architetture a microservizi.

Spesso però REST si dimostra limitante e i programmatori devono fare salti mortali per trovare algoritmi e soluzioni per rendere fruibili attraverso interfacce semplici strutture di dati complesse.

Questo problema si è avuto anche a facebook all'inizio della prima decade del millennio, quando visto il traffico importante dal mobile era necessario ripensare le applicazioni ios e android.

Ripartire dal frontend per poi risalire sul backend e sulla piattaforma. Questo è stato il percorso che ha dato alla luce GRAPHQL naturalmente con un ruolo importantissimo della comunità opensource.

Una esigenza semplice per creare uno standard industriale.

Link

Contatti

@brainrepo su twitter o via mail a info@gitbar.it

Crediti

Le sigle sono state prodotte da MondoComputazionale Registrato negli studi di Radio Nuoro Centrale Le musiche da Blan Kytt - RSPN

Trascrizione

Trascrizione automatica realizzata con servizi Amazon AWS Transcribe

benvenuti su bar i podcast dedicato al mondo dei fools bello in mezzo artigiani, mezzo artisti che ogni giorno infilavano le mani nel fango per creare nel modo più efficiente possibile quei prodotti digitali che quotidianamente usiamo.
Un saluto a tutti gli ascoltatori di bar.
Finalmente questa settimana riusciamo ad andare online per tempo.
Era ora, dopo tante puntate in ritardo, una puntata saltata che però abbiamo in qualche modo ripristinato con la doppia puntata della settimana scorsa.
Comunque bando alle ciance oggi andremo a parlare di aids e del grande mondo delle piaghe.
Andremo a parlare di Graff fuel.
Lo farò subito dopo avervi ricordato i nostri contatti.
Potete entrare in contatto con noi scrivendo che bar punto Hoyt oppure a heat Brian Repo su Twitter Bene, vi ho detto che inizieremo parlando di inizieremo a farlo provando a immaginare una situazione il giorno del nostro compleanno e vogliamo invitare il caffè e i nostri colleghi per farlo.
Ci armiamo di pazienza.
Prendiamo le ordinazioni e ci dirigiamo verso la macchinetta.
Abbiamo ben dieci caffè da ordinare, quindi inseriamo la prima moneta, premiamo il pulsante, attendiamo che la macchinetta prepari il caffè e ripetiamo questa azione finché tutti i caffè non sono pronti.
Naturalmente.
Dopo dieci minuti da grande attesa per fare appunto tutti i caffè, ci rendiamo conto che forse sarebbe stato più bello poter inserire tutte le monete insieme, ordinare tutti il caffè in un solo colpo e attendere la realizzazione per poi ritirarli, ma appunto in un solo colpo.
In questo esempio non è poi così pazzo perché ci permette di introdurre il ragionamento delle se la nostra vendetta, la nostra macchinetta del caffè, la nostra e hai utilizzando un approccio via i resti dover avere una risorsa dobbiamo fare una richiesta.
Se poi quella risorsa ha delle proprietà che sono delle risorse a sua volta, beh, dovremmo fare tante richieste quante sotto risorse dobbiamo ottenere e quindi ci troviamo nella stessa condizione della macchinetta del caffè.
Questo stesso problema lo hanno avuto in Facebook attorno al duemila dodici, quando si sono trovati davanti a una delle sfide piu' grandi per una corporation di quelle dimensioni quella di riscrivere daccapo le api in un mondo dove l'utenza standar si stava spostando verso il molo.
Quindi nasceva l'esigenza di fare delle acque in linguaggio nativo.
Ormai la web che girava su brah non era più sufficiente, quindi da Facebook si decise di ripartire a pensare queste app dal ed è proprio dal processo di studio prima delle e poi dal si è arrivata alle di dover ripensare le hai.
In realtà il passaggio a mobile presupponeva alcune cose un po' diverse rispetto a quello che prima si conosceva, questa volta nelle alternative il poteva avere della capacità computazionale.
Un po' più importante si poteva demandare al un po' piu' di calcolo perché sa iniziava ad avere delle prestazioni superiori rispetto al classico browser, anche perché si poteva avere accesso ai piedi del sistema operativo che insomma alcuni processi particolari.
E poi, avendo questi so intelligenti tra virgolette, si doveva però ovviare a un problema tipico delle playmobil il problema delle connessioni non stabili.
Infatti proprio le applicazioni non ereditano questa questo limite, essendo delle applicazioni fruite in mobilità, la connessione puo' esserci e non esserci.
Quindi questa instabilità di connessione portava le esigenza per il cliente di conservare dentro di sé in memoria una serie di lo stato fondamentalmente dell'applicazione.
Ma per andare a comporre lo stato erano necessarie tutta una serie di chiamate, resti che iniziavano a essere insomma un numero importante da dentro Facebook si è pensato a un modo per superare il concetto di epi ai resti e andare oltre.
Quando si parla di Graff, quel si parla prevalentemente di tre elementi un linguaggio di query, un sistema di tipi e un ma quando si parla di quelli si è portati a guardare direttamente al mondo dei database edili.
Vediamo che le se quelle la fa da padrone la differenza in realtà tra se quelle e'.
Il linguaggio di query di Graff welles sta nel fatto che se se quelle e un linguaggio fatto da istruzioni, quindi un linguaggio di tipo imperativo select certi campi una certa tabella, in realtà il quelli lingue quello è un linguaggio di tipo descrittivo che in qualche modo va a mimare quella che è la risposta che ci si aspetta.
Insomma un po' come scrivere degli oggetti jeison, dove però al posto dei valori che io metto semplicemente i nomi delle proprietà e questi oggetti possono in qualche modo rappresentare mimare degli oggetti che hanno a loro volta delle proprietà che sono degli oggetti.
Quindi in realtà riusciamo a fare delle query a più livelli fino a scendere appunto oggetti di oggetti, di oggetti con una sola chiamata cos'è.
In realtà con le se quelle dovremmo andare a fare, ma con un numero significativo di e con una complessità conseguente molto più alta, per però utilizzare un quelle in grigi come quello di Graff.
Quel è necessaria una conoscenza importante delle strutture di dati.
Ecco perché quella ha bisogno della definizione di un sistema di tipi.
Quando noi creiamo una, quel dobbiamo dichiarare i tipi che stiamo andando a utilizzare è definire la struttura gerarchica dei nostri dati.
Vi faccio un esempio pensiamo a Facebook Noi abbiamo me.
Infatti la radice di tutto su Facebook è il concetto di me bene, ma a una serie di amici che sono delle persone.
Ogni persona ha dei posti.
Vedete che si va a creare un grafo didatti.
Bene, questo grafo si può attraversare tranquillamente descrivendo un quelli laying.
Ma lo si può fare solo se si è a conoscenza di questa gerarchia.
E quindi se questa gerarchia di tipi è stata definita, io faccio sempre questo esempio.
Quando parlo di gerarchia di tipi, immaginate di essere liberi, di muovervi nel bosco.
Vi potete muovere se in realtà nel bosco sono stati tracciati dei sentieri.
Bene la rete dei sentieri e la nostra gerarchia dei tipi.
Quindi, una volta che noi abbiamo una gerarchia dei tipi, possiamo esplorare il bosco senza dover attraversare siepi e fare dei passaggi impossibili.
Quindici.
È possibile muoverci all'interno della struttura dei dati solo perché la struttura dei dati è stata definita.
Infatti la struttura dei dati ci permette, nel momento in cui riceviamo una query, di fare un controllo sui dati richiesti.
E questo controllo ci permette in qualche modo di verificare che cio' che si sta richiedendo sia consono con la struttura dei dati archiviati nel nostro database dei dati che la nostra il pan vuole rispondere, ma sotto il cofano di tutto in realtà cioè un time un motore che prende le query le converte la valida che si realizza poi di conseguenza le risposte.
Quindi una sorta di motore sotto il cofano che prendi l'ingresso quello che noi stiamo chiedendo e risponde anche perché la struttura, grazie al potrebbe rispondere affittare con una struttura di un bambino se quelle ma se noi abbiamo sotto il cofano un D b se quelle abbiamo bisogno in qualche modo di un motore che vada a trasformare queste quelli e questi musei, torse che adesso andremo a vedere cosa sono in richieste base che cosa sono le querce? Cosa sono i mutui? Le quelle sono i due tipi di richieste che noi facciamo la nostra, i pan, quella le query, come dice il nome, sono delle richieste che in qualche modo presuppongono un dato di risposta.
Cioè io voglio andare a scoprire quali sono il posto dei miei amici.
Ecco bene, lancio una query dove il minimo la risposta che mi aspetto e' il server mi restituira', le piace? Mi restituira' una risposta con consona coerente con la richiesta che ho fatto.
Però sapete, nelle piazze e resta esistono anche gli altri verbi esiste per esempio il posto o il putt, cioè quelle azioni che vanno a modificare invece la struttura dei dati.
Per farlo, quello ci mette a disposizione i mutui che se non sono altro che delle chiamate alla stessa stregua delle query che però hanno una fanno un'azione attiva, quindi vanno ad agire sulla nostra struttura dei dati, azione che in qualche modo verrà gestita però nel livello sottostante dalla nostra applicazione.
In realtà la cosa interessante di Graff al e che sotto il cofano ci permette di creare un livello di astrazione che in qualche modo non può nascondere le nostre molteplici origini dei dati.
Un esempio è quello che succede nelle nell'ambito delle applicazioni Twitter.
Dovete pensare che le piace di Twitter che implementa Graff quelle in realtà ha sotto disse un motore che vada a tingere i dati, quindi a convertire un diremo che va ad attingere ai dati da sorgenti completamente diversa dal database o da micro servizi.
Quindi abbiamo un unico punto d'ingresso che comunica in modo semplice palesando offrendo la sua struttura di dati, ma che in qualche modo converte questa struttura dei dati in chiamate a micro servizi dati che poi, una volta presi, devono essere integrati tra di loro e c' è una risposta in modo del tutto trasparente.
Quindi in realtà noi grazie quello non vediamo l'infrastruttura che sta sotto e soprattutto riusciamo ad avere grazia e dei dati in qualche modo coerenti tra di loro e percepiamo un unico tipo di dato A questo punto una domanda sorge spontanea se io dovessi scegliere tra quello e resta, quali sono i pro e i contro? Ben? Senza dubbio quella ha un cuore, il che è molto vicino al linguaggio del dominio, anche perché semplicemente descrive gli oggetti del dominio che noi stiamo andando a prendere secondo la loro struttura di proprietà.
Un altro cosa interessante da vedere e' un altro vantaggio di è quello che il le richieste che realtà facciamo con resti sono veramente limitate.
Ci permettono di attingere alle risorse in modo molto blindato, cosa che invece e quelle non fa perché nella definizione dell'oggetto che noi vogliamo in risposta abbiamo tutta la libertà dettata da come lo andiamo a rappresentare e un'altra cosa è interessante, appunto, che quel permette di attraversare con una sola chiamata il degli oggetti.
Certo, quello nel silver bullet non è il proiettile che ammazza qualunque tipo di mostro, anche dei contro.
In realtà il poi il controllo dei principali sono due quella avendo uno schema dati di richiesta e di risposta abbastanza dinamico dettata appunto dalla struttura dei tipi.
Quindi un tu puoi fare tante richieste, quante combinazioni di proprietà ci sono negli oggetti che stai andando a richiedere? Questa situazione complica la gestione dei sistemi di cash.
Questa gestione però è stata spostata nel motore che gestisce appunto la il reperimento di questi dati prima della conversione, in risposta a quello per cui i sistemi di cash che possono risiedere al livello dei Red Devils.
E un altro contro è che avendo una struttura così libera e la possibilità di scendere in profondità negli oggetti di oggetti, di oggetti, di oggetti l'utente quindi colui che sviluppa il fronte attingendo a queste ai alla possibilità di scendere talmente tanto in profondità da immaginando anche in una condizione dove il sistema scala abbastanza.
Però dove ci sono tante richieste alla possibilità di mandare al collasso le strutture di dati.
Perché ogni volta che noi scendiamo di un livello si complicano le quelli sottostanti del motore che poi in qualche modo converte gli oggetti, li restituisce le modalità, quindi con quel formato, una volta visti i pro e i contro bene, buttiamo uno sguardo veloce, veloce su quelli che sono i tool che stanno apparendo nell'ecosistema.
Quelle in realtà sono tantissimi, molti dei quali sviluppati in javascript.
Il linguaggio diciamo di partenza di questa tecnologia, anche se devo dire che la comunità ha apprezzato tantissimo questo Whitney, per scritta appunto dagli sviluppatori di Facebook, si è messa al lavoro per scrivere delle versioni, sia perché dei di tantissimi linguaggi differenti e oggi ci troviamo infatti con una pletora di tool e di strumenti che vanno a mettere in pratica i concetti di Graff, quella alcuni di questi sono scritti, come vi dicevo in javascript.
Basta pensare ad Apollo, Apollo e una serie di libri JavaScript che mette a disposizione sia un server quel che un cliente o a prisma un una RM.
Ne abbiamo parlato nella puntata dei database del nostro podcast.
E voluto però che ci permette di database attraverso chiamate Graff, quella oh, Harry, lei il per che per l'utilizzo appunto De Pan, quello è un bellissimo tu.
Il che in realtà fa parte della cassetta degli attrezzi degli sviluppatori che utilizzano Graff quel che graffi.
Quel è un'applicazione che permette di esplorare Graff, quel dell'applicazione in questione selezionare i nodi ed è un tool che si dimostra molto utile quando si deve andare a scrivere delle quelli che devono andare a esplorare un Graff, quella il è senza dubbio un interessante un approccio alle interessante pensate che è stata inserita persino dentro Gaza.
Che il sistema infatti dei dati di gas dal quale appunto vada tingere i dati si basa su quei graffi, quel quelli che vanno ad astrarre in qualche modo le varie source sorgenti di informazioni che possono essere il filesystem coi file March down, oppure una un'altra hai, insomma, Quindi sta trovando opposto nelle nuove tecnologie già società come Twitter, Facebook lo implementano per le loro e sono sempre di più i tool che egli gli strumenti, le tecnologie, le piattaforme che utilizzano Graff quel per esporre i loro punti d'accesso bene, senza dubbio.
Sono sicuro che questo tipo di tecnologia, per la sua semplicità e per la sua vicinanza con quelli che sono gli approcci alla business, diventerà uno standard industriale.
E in attesa che questo succeda, noi ci diamo appuntamento alla prossima puntata anche per oggi per barre tutto io sono il repo.
Vi ricordo che potete entrare in contatto con me scrivendo mia heat repo su Twitter oppure hai IPT.
Vi ricordo inoltre che se per voi questa puntata è stata utile bene potete aprire il vostro client di podcast e cercare i bar.
Sono sicuro che lo troverete iscrivervi In questo modo riceverete ogni settimana gli aggiornamenti sulle nuove puntate e rimarrete sempre collegati con noi.
Aspetto i vostri messaggi è un saluto, né da qui dal e tutto alla prossima settimana.
Ciò il circolo di footbag, una volta a settimana.
Ci troviamo davanti a due birre e comprerebbe.
Parliamo di linguaggi e tecniche di sviluppo web, di metodologie e degli strumenti immancabili nella cassetta degli attrezzi di Foster.
No, no.
Ho bisogno di una mano. Aiutami a rendere più conosciuto il nostro podcast. Parlane con gli amici o con i colleghi e iscriviti usando Apple Podast o Google Podcast. Questa tua azione ci aiuterà a salire nella classifica dei podcast di tecnologia ed essere utili anche a qualcun’altro. Se non ti va, amici come prima😄