SAP Cloud SDK JavaScript URL 编码 ODATA 过滤器 (API_PRODUCT_SRV)

SAP Cloud SDK JavaScript URL encoding ODATA filter (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')"

这是returns预期的结果。

我没有检查过,但这可能也会影响其他 VDM 包。

是SDK本身还是SDK用户进行URL编码?我想避免双重编码。

提前致谢,

ujj

版本1.27.0 has been released last week. The SDK handles the url encoding from this version. Please try it. See release notes here.