GraphQl vs Rest APT
REST — La tecnologia più popolare
Representational State Transfer (REST) è la tecnologia di sviluppo API più popolare nello sviluppo web moderno. Fornisce un'architettura senza stato per il trasferimento dei dati. Le richieste del client contengono tutti i dettagli richiesti per soddisfare la richiesta e il server non mantiene lo stato del client.
Le API REST supportano le intestazioni di memorizzazione nella cache HTTP native e utilizzano i metodi HTTP (POST, GET, PUT, PATCH e DELETE) per manipolare i dati. Chiunque può iniziare facilmente con REST poiché è semplice e ha una curva di apprendimento superficiale.
Inoltre, REST è facilmente scalabile e affidabile. Pertanto, gli sviluppatori possono sceglierlo per le loro applicazioni senza alcun dubbio. Anche aziende come Twitter, Paypal e Google utilizzano le API REST nei loro prodotti.
Vantaggi del RIPOSO
- Puoi sicuramente implementare operazioni CRUD utilizzando metodi HTTP standard.
- REST esiste da molto tempo e quasi tutti gli sviluppatori sanno come usarlo.
- Supporta la memorizzazione nella cache.
- È scalabile e fornisce la separazione tra il client e il server.
- Puoi integrarlo in più applicazioni con facilità.
- Ha problemi di recupero eccessivo e insufficiente.
- Non può mantenere gli stati.
- Ha grandi dimensioni del carico utile.
- Il numero di endpoint aumenta drasticamente con la scalabilità dell'applicazione.
- Non è facile aggiornare lo schema del database o le strutture dei dati.
REST è la scelta migliore se non hai requisiti specifici. Ad esempio, se sei nuovo nello sviluppo, l'utilizzo di REST è la soluzione perfetta poiché ha una curva di apprendimento poco profonda. Inoltre, ha un ampio ecosistema e puoi trovare facilmente soluzioni a qualsiasi problema tu debba affrontare.
Inoltre, è meglio utilizzare REST quando si ha a che fare con molte richieste e larghezza di banda limitata. È possibile utilizzare il suo supporto per la memorizzazione nella cache per migliorare le prestazioni in tali situazioni.
Nel complesso, non possiamo limitare l'uso di REST a determinati tipi di applicazioni. Ad esempio, puoi utilizzare REST se la tua applicazione richiede esplicitamente GraphQL o gRPC.
GraphQL: uno standard guidato dal cliente
GraphQL è un linguaggio di query dei dati introdotto nel 2015. Consente agli sviluppatori di individuare e recuperare i dati esatti di cui hanno bisogno. Rispetto a REST, GraphQL è un approccio guidato dal cliente in cui il cliente può decidere quali dati sono necessari, come recuperare i dati e il formato. Risolve anche i problemi di recupero eccessivo e insufficiente poiché il client può individuare i dati richiesti.
GraphQL manipola i dati utilizzando query, mutazioni e abbonamenti.
- Query — Per richiedere dati dal server.
- Mutazioni : per modificare i dati lato server.
- Abbonamenti : per ricevere aggiornamenti in tempo reale quando i dati vengono aggiornati.
Vantaggi di GraphQL
- È altamente flessibile e offre esattamente ciò di cui il cliente ha bisogno.
- Non ha over-fetching e under-fetching.
- È supportato da linguaggi noti, tra cui JavaScript, Java, Python, Ruby e PHP.
- Permette di personalizzare la struttura dei dati.
- Una singola query può contenere campi da più risorse.
- Le query possono essere complesse.
- Manca il supporto per la memorizzazione nella cache integrato.
- L'apprendimento di GraphQL può essere impegnativo rispetto a REST.
- Non supporta il caricamento di file per impostazione predefinita.
GraphQL è una scelta eccellente per interrogare database con molti record. Puoi eliminare l'overfetching con GraphQL e recuperare solo i dati necessari in formati specifici per aumentare le prestazioni dell'applicazione. Inoltre, GraphQL è adatto per situazioni in cui è necessario aggregare dati da più risorse.
Puoi anche utilizzare GraphQL quando non comprendi completamente come il client utilizza l'API. Con GraphQL, non è necessario definire in anticipo un contratto rigoroso. Invece, puoi sviluppare gradualmente l'API in base al feedback dei clienti.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































