Puede cambiar su API para incluir parámetros adicionales para limitar el alcance de los datos devueltos por su aplicación.
Por ejemplo, puede agregar los parámetros limit
y offset
para obtener solo una pequeña parte. Así es como se puede hacer la paginación de acuerdo con REST. Una solicitud como esta daría como resultado la obtención de 10 recursos de la colección de mensajes, del 21 al 30. De esta manera usted puede pedir una parte específica de un gran conjunto de datos:
myapi.co.uk/messages?limit=10&offset=20
Otra forma de disminuir la carga útil sería la única pedir ciertas partes de la representación de sus recursos. Así es como lo hace facebook:
/joe.smith/friends?fields=id,name,picture
Recuerde que al usar cualquiera de estos métodos, usted tiene que proporcionar una manera para que el cliente para descubrir cada uno de los recursos. No puede suponer que solo mirarán los parámetros y comenzarán a cambiarlos en busca de datos. Eso sería una violación del paradigma REST. Bríndeles los hipervínculos necesarios para evitarlo.
Recomiendo ver this presentation on RESTful API design por apigee (el screencast se llama "Teach a Dog to REST"). Aquí se discuten las buenas prácticas y las ideas claras para abordar los problemas cotidianos.
EDIT: El vídeo se ha actualizado varias veces desde que he publicado esta respuesta, se puede extraer la 3rd edition from January 2013
que es muy útil, gracias. – LeeTee
la presentación vinculada es genial: estricta e informativa – kiedysktos
@toniedzwiedz Supongamos que cuando el servidor tiene 20 recursos, el cliente obtuvo los primeros 10 recursos utilizando el límite 10 y el desplazamiento 0 y antes de enviar otra solicitud para recuperar los recursos restantes si se eliminan algunos (1 a 5) del servidor, ¿cómo obtiene el cliente los recursos 11º a 15º en este enfoque? porque en el próximo fetch, el cliente solicitará el desplazamiento 10, por lo que pasaría por alto el 11º al 15º derecho de datos. ¿Hay otro enfoque mejor para resolver esto sin que el cliente realice un seguimiento de los recursos eliminados? – thavasidurai