QNA > Q > Quali Sono Gli Svantaggi Dell'uso Delle Api Restful?

Quali sono gli svantaggi dell'uso delle API RESTful?

REST è un approccio architettonico e significa che un sistema RESTful ha le seguenti proprietà:

  • È client/server: la logica di business è disaccoppiata dalla presentazione. Quindi si può cambiare uno senza impattare l'altro. Il contro, aggiunge una latenza trascurabile, ma chi se ne frega, il web è la piattaforma e tutto è client/server.
  • È stateless: Tutti i messaggi scambiati tra client e server hanno tutto il contesto necessario per sapere cosa fare con il messaggio. Questa visibilità ha diversi benefici: si può instradare un messaggio dove si vuole a seconda del suo contenuto e qualsiasi server può servire una richiesta. Quindi potete semplicemente scalare il vostro server creando diverse istanze di esso. Non è necessario inviare tutti i messaggi dallo stesso cliente o utente allo stesso server. E se volete ottimizzare il backend, potete indirizzare i messaggi a diversi server a seconda del messaggio. Per esempio, avere una richiesta intensiva di CPU ad un server e una intensiva di memoria ad un altro. I contro: il client sta inviando tutti i messaggi con informazioni ridondanti. Questo aggiunge larghezza di banda e di nuovo, una latenza trascurabile.
  • E' memorizzabile nella cache, quindi se siete preoccupati per la latenza risparmiate larghezza di banda mettendo in cache le risposte del server.
  • Ha un'interfaccia uniforme basata sull'hypermedia (sapete, quella cosa di HATEOAS). Il bello è che si può migliorare notevolmente il disaccoppiamento tra client e server. Se le risposte del server contengono ipermedia per tutte le risorse referenziate e le azioni disponibili nel contesto dell'ultima richiesta, il client non ha bisogno di sapere molto del server se non un punto di ingresso e alcune convenzioni sull'ipermedia. Correttamente implementato, si potrebbero cambiare molte cose nel lato server senza riscrivere una sola riga nel client.
  • E infine, è a strati, come una cipolla. Potete mettere diversi strati di componenti tra il client e il server, per scopi di routing, bilanciamento del carico, cacheing o qualsiasi cosa abbiate bisogno. Naturalmente aggiunge latenza, ma anche molta flessibilità. E se si cambia un livello, solo il livello precedente potrebbe essere influenzato, quindi la propagazione degli effetti del cambiamento è limitata.

In generale gli unici contro sono legati alla latenza nei tempi di elaborazione delle richieste e all'utilizzo della larghezza di banda. Ma è una grande architettura generale che fornisce:

  • grande flessibilità
  • bassi costi di manutenzione
  • alta scalabilità
  • semplicità

Di Elvin Renault

Cos'è una vita frenetica? :: Come funziona Termux su Android?
Link utili