Architettura API: chiamate sincrone, asincrone e parallele

May 07 2023
Un corso intensivo con infografiche su cosa significano e quando usare quale. Contesto Un aspetto critico dello sviluppo dell'API REST è il modo in cui i client effettuano richieste e ricevono risposte.

Un corso intensivo con infografiche su cosa significano e quando usare quale.

Sfondo

Un aspetto critico dello sviluppo dell'API REST è il modo in cui i client effettuano richieste e ricevono risposte.

In questo segmento, tratterò i 3 metodi principali per effettuare richieste nelle API REST: chiamate sincrone, asincrone e parallele.

Descriverò i pro ei contro di ciascun metodo e quando utilizzare quale per ottenere i massimi guadagni in termini di prestazioni.

Lettura correlata

Ho scritto molto sulle migliori pratiche di progettazione, prestazioni, sicurezza, controllo delle versioni e diagrammi delle API. Dai un'occhiata alla mia serie collegata di seguito per saperne di più!

Chiamate sincrone

Le chiamate sincrone sono il metodo più comune per effettuare richieste in un'API REST.

Nelle chiamate sincrone, l'applicazione client invia una richiesta al server e attende una risposta prima di procedere al passaggio successivo. Ciò significa che l'applicazione client è bloccata finché non riceve una risposta dal server.

Professionisti:

  • Le chiamate sincrone sono facili da implementare e comprendere.
  • Sono utili per piccole applicazioni con bassi volumi di traffico .
  • Le chiamate sincrone possono essere lente e inefficienti, in particolare per applicazioni di grandi dimensioni con volumi di traffico elevati.
  • Possono causare problemi di prestazioni se il server impiega troppo tempo a rispondere.
  • Utilizzare le chiamate sincrone quando l'applicazione ha volumi di traffico ridotti o è relativamente piccola.
  • Sono inoltre utili per le applicazioni in cui il client deve attendere una risposta prima di procedere al passaggio successivo.
Fonte: Abdul R. Wahab

Chiamate asincrone

Le chiamate asincrone sono un metodo per effettuare richieste in cui l'applicazione client invia una richiesta al server e continua a eseguire altre attività in attesa di una risposta.

Ciò significa che l'applicazione client non è bloccata durante l'attesa di una risposta dal server.

Professionisti:

  • Le chiamate asincrone sono più veloci ed efficienti delle chiamate sincrone.
  • Sono utili per applicazioni di grandi dimensioni con volumi di traffico elevati .
  • Le chiamate asincrone sono più complesse da implementare rispetto alle chiamate sincrone.
  • Possono essere difficili da eseguire il debug se sono presenti errori nella richiesta o nella risposta.
  • Utilizzare le chiamate asincrone quando l'applicazione ha volumi di traffico elevati o è relativamente grande.
  • Sono inoltre utili per le applicazioni in cui il client non deve attendere una risposta prima di procedere al passaggio successivo.
Fonte: Abdul R. Wahab

Chiamate parallele

Le chiamate parallele sono un metodo per effettuare più richieste contemporaneamente .

Nelle chiamate parallele, l'applicazione client invia più richieste al server contemporaneamente e il server risponde a ciascuna richiesta individualmente .

Professionisti:

  • Le chiamate parallele sono più veloci ed efficienti delle chiamate sequenziali.
  • Sono utili per applicazioni di grandi dimensioni con volumi di traffico elevati.
  • Le chiamate parallele possono causare problemi di prestazioni se il server non è progettato per gestire più richieste contemporaneamente.
  • Possono anche causare problemi se ci sono dipendenze tra le richieste.
  • Utilizzare le chiamate parallele quando l'applicazione ha volumi di traffico elevati o è relativamente grande.
  • Sono anche utili per le applicazioni in cui il client deve effettuare più richieste contemporaneamente.
Fonte: Abdul R. Wahab

Pensieri di chiusura

Quindi, praticamente, la scelta di effettuare chiamate sincrone, asincrone o parallele in un'API dipende dalle esigenze specifiche dell'applicazione.

Sebbene le chiamate sincrone siano facili da implementare, potrebbero non essere adatte per applicazioni su larga scala che richiedono una comunicazione rapida ed efficiente tra client e server. Le chiamate asincrone e parallele offrono prestazioni e scalabilità migliori, ma richiedono un'implementazione più avanzata e possono presentare una serie di sfide.

È essenziale soppesare i pro ei contro di ciascun metodo e considerare il volume di traffico, la dimensione dell'applicazione e il tipo di richieste da effettuare prima di scegliere un particolare approccio.

Scegliendo il metodo appropriato, i team di ingegneri possono garantire che la loro API fornisca prestazioni, scalabilità e reattività ottimali per gli utenti finali.