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
使用 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