Le migliori pratiche per chiamare più API e manipolare i dati prima di mostrarli all'utente?

0

Sto creando un'applicazione web che utilizza più API (Google Maps, API meteo e altro). Sto usando Python + Flask sul backend, e Javascript (probabilmente con React, non ho ancora deciso) sul front-end.

L'applicazione prenderà i risultati di queste varie query API e fornirà all'utente un risultato semplice e sintetico, che implica una buona quantità di calcoli e logica condizionale basata sulla risposta dell'API.

Qual è la procedura migliore per farlo?

Se faccio tutte le chiamate API sul lato client, e ho a che fare con i calcoli e così anche lì, mi sembra ingombrante.

Se faccio tutto sul backend, le chiamate non sono asintoniche e quindi sono preoccupato che le chiamate potrebbero richiedere del tempo. Sebbene nel mio caso d'uso un'attesa di 2-3 secondi sia probabilmente accettabile fintanto che c'è un messaggio di "Caricamento". Questo è ciò che attualmente ho (a metà strada attraverso la scrittura di tutte le chiamate API e dei calcoli necessari)

Potrei anche fare le chiamate API sul client, passarlo al server per i calcoli e poi inviare i risultati al front-end. Non sono sicuro che sia una soluzione pratica o se risolvesse davvero qualsiasi cosa.

    
posta Brian C 25.06.2018 - 07:46
fonte

1 risposta

2

Dovresti utilizzare un server per gestire e chiamare le API esterne, quindi combinare le risposte secondo necessità e restituirle al client.

  • Non dovresti dirottare le risorse dei tuoi clienti per chiamare tutti questi servizi e elaborare i risultati a seconda di quanto è intenso. Inoltre non sai che tipo di connessione ha il tuo cliente, ciò che ti porta in pochi secondi su una buona connessione potrebbe essere molto più lungo.
  • Non puoi garantire che il tuo cliente possa accedere a tutti i vari endpoint dell'API che richiede più lavoro per fallback con garbo. Gli ambienti aziendali sono un buon esempio in cui questo è comune.
  • Potresti riuscire a sfruttare il caching di alcune chiamate tra gli utenti.

L'obiettivo generale dovrebbe essere quello di ridurre al minimo il numero di richieste e la quantità di dati trasferiti. Anche le richieste di terze parti devono essere ridotte al minimo a meno che non possano ridurre la quantità di dati trasferiti o fornire un vantaggio simile (ad es. CDN).

    
risposta data 25.06.2018 - 14:34
fonte

Leggi altre domande sui tag