Фильтр ODATA кодирования URL-адресов JavaScript в SAP Cloud SDK (API_PRODUCT_SRV)

При использовании 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


person ujj    schedule 11.08.2020    source источник
comment
Спасибо, что подняли этот вопрос! Кодирование должно выполняться как часть SDK, который добавляется в отставание. Я дам вам знать, как только мы закончим доработку.   -  person Junjie Tang    schedule 11.08.2020


Ответы (1)


На прошлой неделе была выпущена версия 1.27.0. SDK обрабатывает кодировку URL из этой версии. Пожалуйста, попробуйте. См. Примечания к выпуску здесь.

person Junjie Tang    schedule 24.08.2020