Skip to main content
Gli endpoint che restituiscono un elenco usano la paginazione a cursore. La risposta ha sempre questa forma:

Parametri

Un limit fuori intervallo o un cursore non riconosciuto rispondono 400 invalid_request. Il cursore è opaco: il suo contenuto non fa parte del contratto. Usalo solo con lo stesso endpoint e gli stessi filtri della richiesta che l’ha prodotto.
Una pagina può contenere meno di limit elementi e avere comunque un nextCursor: succede con le chiavi limitate ad alcune sedi. Per sapere se ci sono altre pagine guarda solo nextCursor, mai quanti elementi sono arrivati.

Scorrere tutte le pagine

Ordine

Gli elenchi sono ordinati per ultima modifica e id, crescente. Una risorsa modificata mentre scorri le pagine si sposta in fondo e ricompare in una pagina successiva: nessuna risorsa si perde fra due pagine, ma la stessa può comparire due volte. Deduplica per id tenendo la versione più recente. Fanno eccezione:
  • GET /appointments?sort=start: per orario di inizio. Con questo ordine updatedSince non è disponibile;
  • GET /events: per istante di pubblicazione dell’evento.

Sincronizzazione incrementale

  1. La prima volta scorri tutte le pagine senza updatedSince.
  2. Salva l’updatedAt più recente che hai ricevuto.
  3. Le volte successive passa quel valore in updatedSince.
Per sapere cosa è cambiato senza interrogare ogni elenco, usa i webhook o GET /events, e rileggi solo le risorse toccate.

Risposte che dicono quanto coprono

Una risposta non deve sembrare completa quando non lo è. Per questo: