Un servicio OData puede definir un tipo de entidad con una gran cantidad de propiedades. Si el consumidor del servicio realmente solo necesita unos pocos, cambiar el resto es una carga innecesaria para el tráfico de la red y puede aumentar los tiempos de respuesta. Opción de consulta del sistema OData $select
le permite especificar una lista más pequeña de propiedades que deben devolverse.
Mirando el documento de metadatos del servicio OData, verá que el Product
es un tipo de entidad con muchas propiedades.
Primero, observe todas las propiedades y algunos valores de muestra preguntando a la primera entidad en el Products
entidad establecida en esta URL:
https://sapes5.sapdevcenter.com/sap/opu/odata/sap/EPM_REF_APPS_SHOP_SRV/Products?$top=1&$format=json
Incluso en un formato JSON más ligero, todavía hay muchos datos, especialmente si se solicita un conjunto completo de entidades:
Ahora reduzca el número de propiedades a unas pocas: AverageRating
, Name
y StockQuantity
utilizando la $select
opción de consulta del sistema:
https://sapes5.sapdevcenter.com/sap/opu/odata/sap/EPM_REF_APPS_SHOP_SRV/Products?$top=1&$format=json&$select=AverageRating,Name,StockQuantity
Obtienes una respuesta que parece algo, ¡mucho menos!
El es $select
También se puede usar una opción de consulta del sistema para especificar propiedades que son parte de entidades que se devuelven en línea con los datos. $expand
. El es Product
hay un tipo de entidad Supplier
propiedad de navegación así como Reviews
propiedades de navegación: se pueden restaurar de acuerdo con $expand
, y un conjunto restringido de sus propiedades se puede especificar en $select
además.
Especifique esta URL, para solicitar el primer producto, así como el nombre de su proveedor, así como los nombres de los usuarios que opinaron sobre ese producto:
https://sapes5.sapdevcenter.com/sap/opu/odata/sap/EPM_REF_APPS_SHOP_SRV/Products?$top=1&$format=json&$expand=Supplier,Reviews&$select=AverageRating,Name,StockQuantity,Supplier/Name,Supplier/FormattedAddress,Reviews/UserDisplayName
Dependiendo de cómo hayan cambiado los datos en este sistema de demostración, es posible que a veces no haya reseñas del primer producto. En ese caso, busque uno usando una combinación de
$top
y$skip
que aprendiste en un paso anterior.
La sección de la cadena de consulta de esta URL es relativamente larga y difícil de leer. Desglosado, tenemos lo siguiente:
Encuentra la primera entidad:
$top=1
Devuelve la respuesta en formato JSON
$format=json
También envíe detalles de proveedores y revisiones relacionadas en línea
$expand=Supplier,Reviews
Devolver solo estas propiedades específicas
$select=AverageRating,Name,StockQuantity,Supplier/Name,Supplier/FormattedAddress,Reviews/UserDisplayName
Tenga en cuenta el formato para especificar propiedades en tipos de entidad relacionados, p. Ej.
Supplier/Name
yReviews/UserDisplayName
.
Esta solicitud devuelve exactamente lo que pedimos: