我使用UI5 Tooling构建了一个 SAPUI5 应用程序,现在我无法将它连接到 OData 服务。
由于 OData 服务的真实 url 是不公开的,所以我们称之为:
http://app99.sap.domain.com/sap/opu/odata/sap/Z_DOMAIN_SRV/
并在我的浏览器中打开它,$metadata?sap-language=DE
最后添加,工作 - 我得到 XML 元数据文档。
这些是我尝试更改以连接到 OData 服务的文件:
- 网络应用
- 清单.json
- 包.json
- ui5.yaml
在中添加"dataSources"
-object 和"models"
-objectmanifest.json
{
"sap.app": {
...
"dataSources": {
"oDataService": {
"uri": "/sap/opu/odata/sap/Z_DOMAIN_SRV/",
"type": "OData"
}
}
},
"sap.ui5": {
...
"models": {
...
"": {
"dataSource": "oDataService",
"preload": true,
"settings": {
"useBatch": false
}
}
},
...
}
}
我也尝试将"uri"
值更改为真实链接http://app99.sap.domain.com/sap/opu/odata/sap/Z_DOMAIN_SRV/
,但是我预计会收到一个Cross-Origin
错误:
因此,我尝试通过将其添加到我的以下来设置代理package.json
:
{
...
"devDependencies": {
"ui5-middleware-simpleproxy": "^0.5.1"
},
"ui5": {
"dependencies": [
"ui5-middleware-simpleproxy"
]
},
...
}
并将其添加到我的ui5.yaml
文件中:
...
server:
customMiddleware:
- name: ui5-middleware-simpleproxy
mountPath: /sap/opu/odata/sap/Z_DOMAIN_SRV
afterMiddleware: compression
configuration:
baseUri: "http://app99.sap.domain.com/sap/opu/odata/sap/Z_DOMAIN_SRV/"
希望现在
http://localhost:8080/sap/opu/odata/sap/Z_DOMAIN_SRV/$metadata?sap-language=DE
会变成
http://app99.sap.domain.com/sap/opu/odata/sap/Z_DOMAIN_SRV/$metadata?sap-language=DE
并且它会起作用,但事实并非如此 - 我只是从顶部的屏幕截图中得到错误。
知道我缺少什么吗?
我真的想让它与这个ui5-middleware-simpleproxy 一起工作,因为我不想手动启动两台服务器(UI5 Tooling 一个和另一个用于代理)。目前我只需要做ui5 serve
,一切都是开箱即用的。