Tengo una API REST que implementa la paginación del lado del servidor y devuelve los siguientes datos:
{ items: [ { id: 1, name: 1 }, { id: 2, name: 2 } ], nextToken: <some-hash-key> // cursor-based }¿Cómo debería la aplicación cliente actualizar la lista si el recurso se actualiza (el cliente no está al tanto de la actualización, por lo que este es un modelo de extracción)? Tengo algunas ideas:
Ambos enfoques son fundamentalmente la misma idea. El primer enfoque es más costoso pero permite más actualizaciones en tiempo real. El segundo enfoque se basa en la identificación de la sesión, que creo que es más idiomática, pero sin actualizaciones en tiempo real. ¿Hay algún otro enfoque?
Las API REST no están diseñadas para actualizaciones en tiempo real; para eso necesitas enchufes.
No es escalable para actualizar cada actualización del lado del cliente en tiempo real, por lo que debe ser una actualización a intervalos regulares. El tiempo de duración/intervalo podría decidirse en función de los hechos sobre la mesa.
Puede usar una integración simple como https://socket.io y una arquitectura similar a cron para transmitir actualizaciones en intervalos regulares.
Versione su lista, envíe encabezados de solicitud If-None-Match con solicitudes GET cada n segundos, o probablemente minutos. Responda con 304 si no se modifica. Responda con nuevos datos si se modifican. Aunque esto no escalará bien. Usar websockets y enviar un evento de actualización escala mucho mejor. A partir de las sesiones, REST no tiene estado, por lo que no las tiene.