typescript - Codificación de URL de JavaScript del SDK de SAP Cloud filtro ODATA (API_PRODUCT_SRV)
Usando el SAP Cloud SDK JavaScript (@sap-cloud-sdk/core versión 1.26.1, @sap/cloud-sdk-vdm-product-service versión 1.19.0) los filtros ODATA no están codificados por porcentaje en la parte de consulta de la URL.
Ejemplo: (Suponiendo que exista un producto con la descripción "ä_description")
El siguiente ejemplo no recupera esta descripción del producto:
const term = 'ä_description';
const destination = getDestinationInformation(); //get destination information from somewhere
const results = await ProductDescription.requestBuilder()
.getAll()
.filter(ProductDescription.PRODUCT_DESCRIPTION.equals(term))
.execute(destination);
Este fragmento produce la siguiente URL de solicitud:
"https://<host>/sap/opu/odata/sap/API_PRODUCT_SRV/A_ProductDescription?$format=json&$filter=(ProductDescription eq 'ä_description')"
Al realizar la codificación porcentual en el término de búsqueda (const term=encodeURIComponent('ä_description');) se genera la siguiente URL de solicitud:
"https://<host>/sap/opu/odata/sap/API_PRODUCT_SRV/A_ProductDescription?$format=json&$filter=(ProductDescription eq '%C3%A4_description')"
Esto devuelve el resultado esperado.
No he comprobado, pero esto también puede afectar a otros paquetes VDM.
¿Debería el propio SDK o el usuario del SDK realizar la codificación de URL? Quiero evitar la doble codificación.
Gracias de antemano,
ujj
Respuesta #1
La versión 1.27.0 fue lanzada la semana pasada. El SDK maneja la codificación de URL a partir de esta versión. Por favor, pruébalo. Consulta las notas de la versión aquí.