Saltar al contenido

Continúe su exploración de OData con EPM

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!

producto con un número reducido de propiedades

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 y Reviews/UserDisplayName.

Esta solicitud devuelve exactamente lo que pedimos:

revisión del producto y detalles del proveedor