Alcuni servizi vengono offerti in modalità asincrona ovvero non restituiscono subito il dato richiesto ma lo restituiscono in un secondo tempo.
Le risorse a cui le chiamate asincrone devono accedere per poter fornire la risposta al cliente vengono spesso recuperate da server esterni alla nostra rete (ad esempio questo accade quando si richiede una visura o un estratto di mappa).
Questo può richiedere tempi di elaborazione che vanno da qualche secondo ad alcuni minuti.
Talvolta può accadere che i server presso i quali vengono recuperate le informazioni da processare siano temporaneamente inaccessibili e questo può allungare i tempi di risposta.
Per questi motivi è necessario ricorrere a chiamate asincrone ovvero che separano il processo in
una fase di inserimento dell’ordine
una fase di recupero dell’ordine elaborato.
E’ necessario che il cliente imposti un url di callback.
Tale impostazione è disponibile su ogni chiave api che è stata generata.
I nostri server chiameranno tale url per avvertire i server del cliente che l’ordine che era stato richiesto è stato elaborato.
A tale url i nostri server aggiungeranno 2 parametri:
id = xxxx
id dell’ordine che è stato elaborato
type = yyy
tipo dell’ordine che è stato elaborato
Il cliente effettua la chiamata api usando la sua chiave api
Il server restituisce immediatamente un oggetto “ordine” che contiene anche il campo ID
Quando l’elaborazione è ultimata, il server chiemerà l’url di callback aggiungendo i parametri ID e TYPE
Il server del cliente, alla ricezione della chiamata può procedere recuperando l’ordine tramite il suo ID