Per come sono strutturate le API al momento, è decisamente tortuosa la sequenza di call da fare per generare la home di uno studente.
Le principali API da chiamare in questo caso sono:
testCredentials, che testa le credenziali e restituisce una serie di info sullo studente (matricola, corso, ecc..);
listCareers che restituisce la lista delle carriere per uno studente (con un valore id che può essere usato come parametro opzionale careerId in ogni altra API sviluppata per far riferimento a una specifica carriera);
getRecordBook che restituisce media e tutti gli esami dello studente. Anch'esso accetta il parametro opzionale careerId per recuperare una specifica carriera;
L'ordine delle chiamate sarebbe quindi:
testCredentials: testo le credenziali; mi vengono restituite di default alcune info basilari relative all'ultima carriera dello studente (in quanto non possiamo chiamare l'API con alcun careerId);
listCareers: ricevo elenco carriere; se ce n'è più di una, prospetto la scelta all'utente e salvo il careerId da qualche parte;
testCredentials: richiamo nuovamente questo metodo stavolta con il careerId che scelto dall'utente per ricevere le nuove info basilari sulla stessa;
getRecordBook: con la careerId scelta.
A mio avviso potrebbe essere gestita meglio questa situazione, ad esempio scorporando la parte relativa alla info basic sullo studente dall'API per le credenziali, o incorporare la lista delle carriere in quest'ultima API.
Il test e il caching delle credenziali può essere fatto con listCareers, evitando la doppia chiamata a testCredentials. Tuttavia il nome di quest'ultima API è decisamente fuorviante.
Per come sono strutturate le API al momento, è decisamente tortuosa la sequenza di call da fare per generare la home di uno studente. Le principali API da chiamare in questo caso sono:
id
che può essere usato come parametro opzionalecareerId
in ogni altra API sviluppata per far riferimento a una specifica carriera);careerId
per recuperare una specifica carriera;L'ordine delle chiamate sarebbe quindi:
careerId
);careerId
da qualche parte;careerId
che scelto dall'utente per ricevere le nuove info basilari sulla stessa;careerId
scelta.A mio avviso potrebbe essere gestita meglio questa situazione, ad esempio scorporando la parte relativa alla info basic sullo studente dall'API per le credenziali, o incorporare la lista delle carriere in quest'ultima API.