云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名解析_架设网站服务器_多少钱

小七 141 0

几个月前,我想就在UI5con发布之前,SAP发布了新UI5工具的正式生产版本。这当然是UI5con上的一个大话题,有好几次会议都在讨论这个问题。在夏天,我花了一些时间来检查这个新工具集,并在visualstudio代码中进行了尝试。我立即面临一个基本的挑战,我可以测试我的应用程序,但无法访问我的OData服务。这通常是照顾sapwebide…

经过一些调查,大数据中心,我发现了两种可能的解决方案。一个比另一个好,但目前,您可能需要它们两个:

代理服务器,它将应用程序的请求转发到UI5服务器,另一个转发到后端服务器UI5 CLI服务器代理扩展:新工具允许您扩展服务器中间件,从而可以拦截来自客户端的请求,并将OData请求重定向到后端。

在OpenSAP课程中,返利,SAP在任何地方使用npm模块CORS:https://www.npmjs.com/package/cors-anywhere. 他们在OpenSAP课程进化的webapps中展示了这一点:https://open.sap.com/courses/ui52/items/5u41osEJNuR54XkpeJHMG7. 我没有使用这个是因为以下原因:

它需要在清单.json在使用代理时删除你的应用程序。这意味着您总是需要在部署到系统之前对其进行更改,或者在CI设置中对其进行更改。我也无法调用具有身份验证的服务,但那可能只是我…

尽管如此,我认为这些代理选项更好,因为您不需要更改任何内容即可将应用程序部署到系统中。

此选项将使用express托管代理服务器。它需要节点模块"http proxy"和"express"。将这些模块定义为包.json然后运行"npm install"来使用它们。

在旁边,添加脚本来启动代理脚本。

在项目的根文件夹中添加代理:

并添加以下代码:

此代码将执行以下操作:

加载所有需要的npm模块启动代理定义到运行UI5应用程序的主机的路由从另一个配置文件加载到后端服务的路由"odata.json文件"拦截来自托管代理的所有请求并将其转发到正确的路由如果与请求url的模式匹配,它将使用配置文件中的路由否则它将使用默认的应用程序主机为代理运行express服务器

完整代码:

具有后端系统属性的附加配置文件:

每个路由都需要请求的一部分,例如,如果您有一个请求"/opu/odata/sap/ZGW\u UI5CON\u SRV/",则路由应定义为"opu"、"odata"或类似于我定义的"sap"。路由至少需要一个目标,云服务器试用,但也允许您添加身份验证"用户名:密码":

现在可以通过UI5 CLI运行UI5应用程序来测试带有odata服务的应用程序:

UI5 serve

旁边还需要运行代理

Npm run proxy

小备注:如果UI5 serve使用不同的端口,您应该在代理的appRoute对象中更改此端口。

在浏览器中打开代理主机,您将看到包含数据的应用程序!

此设置可通过npm模块"npm run all"进行改进。这允许您同时启动UI5主机和代理主机。(别忘了在添加devDependency之后运行"npm install"。

当我深入研究UI5工具的可扩展性时,我找到了一个更好的解决方案。通过UI5服务器的中间件扩展,物联网是啥,您可以添加自己的逻辑。这意味着express服务器承载的逻辑可以在UI5服务器中实现。您可以在UI5工具文档中找到有关这些扩展的更多信息:https://sap.github.io/ui5-tooling/pages/extensibility/CustomServerMiddleware/

第一步,使用以下设置在"ui5.yaml"文件中定义服务器的扩展名:

给它一个名称在定义和实现部分使用它将其设置为在"serveResources"之前运行对于中间件扩展,种类和类型总是相同的为实现添加路径

为实现创建文件,阿里大数据应用平台,并添加与其他代理中相同的逻辑。唯一的区别是:

它不需要默认的应用程序路由此外,不需要express服务器如果它不使用代理,则需要使用run()函数。

最后,它只需要与express拦截器中使用的逻辑相同。

完整代码:

它使用与后端系统的其他代理相同的配置:

您可以通过使用UI5工具来使用它并运行"UI5 serve"

它将与第一个选项具有相同的结果,但只会托管一台服务器:

我想我们都同意第二种选择是最好的!但是,我们也需要第一个…为什么?以防你想测试生成的结果并直接从"dist"文件夹运行应用程序。把这些放在一起。

测试webapp文件夹:

只需使用UI5工具这将在UI5服务器内运行代理

测试dist文件夹

将npm模块"serve"与代理组合或作为一个命令运行

不要忘记将"serve"模块添加到devDependencies+npm安装

服务模块使用不同的端口,需要在代理的配置中更改:现在,您可以使用一个命令从带有代理的dist文件夹运行应用程序:

希望UI5将来也支持为dist文件夹提供服务,并且我们可以对webapp和dist文件夹使用相同的扩展。

我们还可以将构建过程添加到start命令:

这将运行构建,然后一起为应用程序提供服务委托人

完整项目:https://github.com/lemaiwo/ui5toolsexamplepp