通过 REST API 的 SAPUI5 JSON 模型 - 在 xs-app.json / BTP 中使用 DESTINATION 无法正确解析

问题描述 投票:0回答:1

创建对 REST API 的调用以加载 JSON 模型以绑定到视图/控制器。使用托管应用程序路由器创建自由式 Fiori 应用程序

  1. 在视图控制器内的 oninit 函数中,尝试加载 JSON 模型以绑定到视图

例如(new JSONModel()).loadData("/Products");注意:完整 URL 为 = https://dummyjson.com/Products)

  1. xs-app.json 条目如下 { "来源": "^/产品", “目的地”:“APITEST”, "authenticationType": "xsuaa", “csrfProtection”:假 },

  2. BTP 中的 APITEST 目标配置为无身份验证且 URL = https://dummyjson.com/

  3. HTML5 应用程序已部署到 BTP Cloud Foundry

单击 BTP Cockpit HTML5 应用程序列表中的应用程序时出现 404 错误。但是,如果我更改步骤 1 以将前缀 /Products 删除为 Products,则它可以正确解析。例如

(new JSONModel()).loadData("Products") 很好。但更复杂的是,当我将应用程序部署到构建应用程序启动板时,它停止工作!注意。我已经尝试了启动板的两种变体,但它无论带前导/还是不带前导都不起作用。

有关我如何错误配置文件以解决此问题的任何指示。

在这种情况下(没有启动板)并在相对 URL 中使用“产品”,当我通过 Chrome 中的开发人员工具查看“网络”时,解析的 URL 包括应用程序名称作为通过目标服务访问的 URL 的一部分

sapui5 sap-fiori sap-cloud-foundry
1个回答
0
投票

意识到使用以下实用程序在 JSON 模型上调用 loadData() 方法时需要正确添加 URL 前缀

sap.ui.require.toUrl(appPath+"/产品")。

var appId = this.getOwnerComponent().getManifestEntry(“/sap.app/id”); var appPath = appId.replaceAll(“.”, “/”);

取自以下博客,但使用 sap.ui.require.toUrl 作为 getModulePath 现已弃用。

https://blogs.sap.com/2020/09/08/calling-external-api-in-custom-task-ui-of-workflow-in-cloud-foundry/

© www.soinside.com 2019 - 2024. All rights reserved.