Sto lavorando su un'API che funziona come "intermediario" tra un'API REST e lo sviluppatore.
In questo modo, quando il programmatore fa qualcosa del genere:
User user = client.getUser(nickname);
eseguirà una richiesta di rete per scaricare dal servizio i dati sull'utente e quindi il programmatore potrà utilizzare i dati facendo cose come
user.getLocation();
user.getDisplayName();
e così via.
Ora ci sono alcuni metodi come getFollowers()
che eseguono un'altra richiesta di rete e potrei farlo in due modi:
-
Scarica tutti i dati nel metodo
getUser
(e non solo i più importanti) ma in questo modo il tempo di richiesta potrebbe essere molto lungo poiché dovrebbe eseguire la richiesta a vari Gli URL -
Scarica i dati quando l'utente chiama il metodo, sembra il modo migliore e per migliorarlo potrei memorizzare nella cache il risultato in modo che la prossima chiamata a
getFollowers
ritorni immediatamente con i dati già scaricati invece di eseguire nuovamente la richiesta.
Qual è il modo migliore? E dovrei lasciare che metodi come getUser
e getFollowers
interrompano l'esecuzione del codice fino a quando i dati sono pronti o dovrei implementare un callback, quindi quando i dati sono pronti, il callback viene attivato? (questo sembra Javascript)