¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo restringir la cantidad de datos devueltos con OData: $top, $skip y $count/$inlinecount - Guía completa

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 20 Vistas
0
Cargando...


Esta publicación de blog es parte de la serie en curso "Preguntas frecuentes sobre OData"



Hoy veremos las definiciones de consulta del sistema para $top, $skip para la paginación y $count/$inlinecount para obtener un recuento del número de registros en el conjunto de registros.




¿Cómo restringir la cantidad de datos devueltos?


Esto se hace calculando un desplazamiento y la cantidad de registros a devolver. El desplazamiento se establece usando la opción de consulta del sistema $skip y la cantidad de elementos devueltos a través de la opción de consulta del sistema $top. Si solo se requieren los primeros n elementos, es suficiente omitir la directiva $skip.



http://odata.netflix.com/v2/Catalog/Titles?$top=5 devolverá los 5 primeros elementos del catálogo de títulos en Netflix. Aquí estamos usando un $skip implícito de 0 y un $top de 5.



Compara esto con lo siguiente que devuelve los títulos del 1 al 6 en el catálogo de Netflix



http://odata.netflix.com/v2/Catalog/Titles?$top=5&$skip=1



Aquí estamos usando un $top explícito de 1, lo que significa omitir el primer registro y luego devolver los siguientes 5 registros que son los títulos 1-6 en el catálogo.




¿Cómo obtengo el número de registros en el conjunto?


Obtener el número de registros en un conjunto se hace normalmente de dos maneras dependiendo del contexto.


Usando $count


La solicitud de servicio $count devuelve el número de registros en una colección o, si la colección tiene un filtro, el número de registros que coinciden con el filtro.





Por ejemplo, para obtener un recuento del número de títulos que Netflix tiene almacenados, usarías:

http://odata.netflix.com/v2/Catalog/Titles/$count



Hasta el momento de escribir esto, se informa como 160050


Usando $inlineCount


La otra opción es usar la directiva $inlinecount para obtener el recuento como parte del cuerpo de respuesta. Por ejemplo, si deseas leer los 5 registros pero también te gustaría saber cuántos registros hay en total para que los controles de paginación y la etiqueta de recuento de registros, por ejemplo, se actualicen, entonces el recuento se devolverá en el elemento de recuento en el espacio de nombres de metadatos.





<feed …. xmlns:m=" http://schemas.microsoft.com/ado/2007/08/dataservices/metadata " ...>

...

<m:count>160050</m:count>





o en JSON





d: {

results: [.....],

"__count": "160050"

};





Por ejemplo, para obtener un recuento del número de títulos que Netflix tiene disponibles, así como los primeros 5 registros, harías la solicitud

http://odata.netflix.com/v2/Catalog/Titles?$top=5&$inlinecount=allpages .



Esto devolverá el mismo número de registros que $count en el elemento o propiedad de recuento, pero solo se devolverán las primeras 5 entidades según lo solicitado por la opción de consulta del sistema $top. Esto es muy útil en el escenario móvil donde la paginación se utiliza típicamente para mejorar el rendimiento. Por ejemplo, podemos tomar el recuento y
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

Sin respuestas

No hay respuestas para mostrar No hay respuestas para mostrar Se el primero en responder

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?