При использовании SAP Cloud SDK JavaScript (@ sap-cloud-sdk / core версия 1.26.1, @ sap / cloud-sdk-vdm-product-service версия 1.19.0) фильтры ODATA не кодируются в процентах в части запроса URL.
Пример: (предполагается, что товар с описанием ä_description существует)
В следующем примере это описание продукта не извлекается:
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);
Этот фрагмент кода создает следующий URL-адрес запроса:
"https://<host>/sap/opu/odata/sap/API_PRODUCT_SRV/A_ProductDescription?$format=json&$filter=(ProductDescription eq 'ä_description')"
При выполнении процентного кодирования поискового запроса (const term = encodeURIComponent('ä_description');
) создается следующий URL-адрес запроса:
"https://<host>/sap/opu/odata/sap/API_PRODUCT_SRV/A_ProductDescription?$format=json&$filter=(ProductDescription eq '%C3%A4_description')"
Это возвращает ожидаемый результат.
Я не проверял, но это может повлиять и на другие пакеты VDM.
Должен ли SDK сам или пользователь SDK выполнять кодирование URL? Я хочу избежать двойного кодирования.
Заранее спасибо,
ujj