Búsqueda de sitios web

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í.