Estoy conectando una interfaz REST a una aplicación existente y tengo curiosidad acerca de cuál es la solución más adecuada para tratar con recursos que devolverían una cantidad exorbitante de datos si fueran para ser recuperadoQué hacer con los enormes recursos en API REST
La aplicación es un sistema de hoja de tiempo existente y uno de los recursos es un conjunto de "ranuras de tiempo" de un usuario. Un ejemplo URI de estos recursos es:
/users/44/timeslots/
He leído un montón de preguntas que se refieren a la forma de proporcionar el filtrado de este recurso para recuperar un subconjunto y ya tengo una solución para eso.
Quiero saber cómo (o si) debo manejar la situación de que emitir un GET en el URI anterior devolvería megabytes de datos de decenas o cientos de miles de filas y tomaría una buena cantidad de recursos de servidor para realmente responden en primer lugar.
- ¿Existe una respuesta HTTP utilizada por la convención en estas situaciones?
me encontré con código HTTP 413, que se refiere a una entidad de solicitud que es demasiado grande, pero no una que sea adecuada para cuando la entidad de respuesta sería demasiado grande - ¿Hay una convención alternativa para limitar la respuesta o diciendo el cliente que esta es una solicitud tonta?
- ¿Debo simplemente dejar que el servidor cumpla con esta solicitud masiva?
EDIT: Para que quede claro, no tengo el filtrado y la división del recurso implementado y he considerado la paginación en otros recursos de recogida grandes. Quiero responder de forma adecuada a las solicitudes que no tienen sentido (y obviamente han sido solicitadas por un cliente que está construyendo un URI).
¿De verdad es un problema devolver tantos datos en dicha solicitud? ¿O simplemente está tratando de protegerse contra una recuperación involuntaria que da como resultado un desperdicio de recursos del servidor y ancho de banda? –
Si la solicitud es tonta, no implemente un controlador para ese recurso y devuelva un 404 si alguien construye erróneamente ese URI. ... y luego ganarles en la construcción de URLs :-) –
@ jeff-hall No hay problema con la devolución de tantos datos, es simplemente una protección contra la recuperación no intencionada como mencionaste. –