Ho un endpoint REST che ottiene un elenco di clienti in un formato JSON.
GET / webservice / customers
{
"count" : 80267
"customers" : [
{
"id": 1,
"name": "John Doe",
"email" : "[email protected]"
},
{
"id": 2,
"name": "Michael Bay",
"email" : "[email protected]"
}
]
}
Il mio cliente salva in un database i clienti che carica, ma per aggiornare questo elenco è necessario caricare tutti i dati ogni volta. A volte posso avere più di 100.000 entità , il che è molto lento e consumante.
Sto cercando un modo per ottenere solo i dati che sono stati modificati dall'ultimo aggiornamento.
Ho trovato alcune risposte come If-Modified-Since o il Etag sistema, ma se è necessario un nuovo aggiornamento, il webservice conserva tutti i dati.
Ho pensato a un sistema in cui invio il timestamp dell'ultimo aggiornamento in un'intestazione o un parametro URL e l'endpoint REST restituisce solo le entità nuove o aggiornate e gli ID delle entità che sono state eliminate dall'ultimo aggiornamento .
Ma suppongo che molte persone intelligenti abbiano avuto questo problema prima di me e mi chiedo se esiste un metodo comune per risolvere questo problema.
PS: non ho bisogno del paging in quanto i dati vengono utilizzati per contare i clienti dopo l'applicazione di alcuni filtri sul set di dati.