CAP模型/MTA将UI5路由到Node.js端点

2020-08-27 11:00发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好

我正在使用CAP模型和包含MANA,HANA数据库,node.js服务和UI5应用程序的单个MTA进行开发。 我已经从CAP模板创建了一个应用,该应用可为我提供现成的HANA数据库和Node.js OData服务,可直接为Books/Authors等提供服务。

然后我使用模板" SAP Fiori Worklist Application OData v4"添加一个新的HTML模块。 我将"数据连接"选项设置为"当前项目",并将我的" CatalogService"设置为由节点应用创建,映射一些字段并完成操作。

现在,我启动UI5应用程序并且没有任何数据。 在以前的WebIDE中,当我第一次这样做时,它将要求我提供Neo凭据并自动创建目标位置,并且该应用程序可以运行。 现在,这没有发生。 neo-app.json文件具有用于目的地的一些占位符代码。 如果我将其更新为目标名称(srv_api),然后在Neo中使用指向我的Node.js临时URl的相同名称创建目标,则UI5应用程序将正常工作。

Neo-app.json

"路线":[
     {
       " path":" srv_api/",
       "目标":{
         " type":"目的地",
         " name":" srv_api",
         " entryPath":"/"
       },
       " description":"要在运行应用程序时将虚拟目标映射到真实目标(hc_destmapping URL参数)"
     },
 

但是,当我们有多个开发人员在处理该应用程序时,这种情况就会下降。 我们共享相同的git repo,因此neo-app.json是相同的。 目标指向开发人员1的url,因此,如果开发人员2对db模型/服务和UI进行了更改,则目标需要更改以及许多其他问题。

我阅读此博客的方式( https://blogs.sap.com/2018/10/08/using-the-destination-service-in-the-cloud-foundry-environment/)-特别是评论 ,则我不需要目的地,因为它是云原生应用程序,并且未连接到外部源。

我试图了解需要进行哪些更改才能"内部"进行路由,并能够独立于其他开发人员进行开发,构建和测试。

mta.yaml文件

 ID:NodeAndUI5
 _schema-version:" 2.1"
 描述:节点和UI5-无目的地测试
 版本:0.0.1
 模块:
   -名称:NodeAndUI5-db
     类型:hdb
     路径:db
     参数:
       记忆体:256M
       磁盘配额:256M
     要求:
       -名称:NodeAndUI5-db-hdi-container
   -名称:NodeAndUI5-srv
     类型:nodejs
     路径:srv
     参数:
       内存:512M
       磁盘配额:256M
     提供:
       -名称:srv_api
         特性:
           网址:$ {default-url}
     要求:
       -名称:NodeAndUI5-db-hdi-container


   -名称:app
     类型:html5
     路径:应用
     参数:
        磁盘配额:256M
        记忆体:256M
     构建参数:
        制造商:咕unt声
     要求:
      -名称:uaa_NodeAndUI5


 资源:
   -名称:NodeAndUI5-db-hdi-container
     类型:com.sap.xs.hdi-container
     特性:
       hdi-container-name:$ {服务名称}


   -名称:uaa_NodeAndUI5
     参数:
        路径:./xs-security.json
        服务计划:应用
        服务:xsuaa
     类型:org.cloudfoundry.managed-service


 

xs-app.json文件

 {
   " welcomeFile":"/app/index.html",
   " authenticationMethod":"路由",
   "登出": {
     " logoutEndpoint":"/img/do/logout"
   },
   "路线":[
     {
       " source":"/srv_api/(.*)$",
       " target":" $ 1",
       " authenticationType":"无",
       " destination":" srv_api",
       " csrfProtection":false
     },
     {
       " source":" ^/app/(.*)$",
       " target":" $ 1",
       " localDir":" webapp"
     }
   ]
 }
 

此处的Git回购- https://github.com/princeneil/capdest.git

致谢

尼尔

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好

我正在使用CAP模型和包含MANA,HANA数据库,node.js服务和UI5应用程序的单个MTA进行开发。 我已经从CAP模板创建了一个应用,该应用可为我提供现成的HANA数据库和Node.js OData服务,可直接为Books/Authors等提供服务。

然后我使用模板" SAP Fiori Worklist Application OData v4"添加一个新的HTML模块。 我将"数据连接"选项设置为"当前项目",并将我的" CatalogService"设置为由节点应用创建,映射一些字段并完成操作。

现在,我启动UI5应用程序并且没有任何数据。 在以前的WebIDE中,当我第一次这样做时,它将要求我提供Neo凭据并自动创建目标位置,并且该应用程序可以运行。 现在,这没有发生。 neo-app.json文件具有用于目的地的一些占位符代码。 如果我将其更新为目标名称(srv_api),然后在Neo中使用指向我的Node.js临时URl的相同名称创建目标,则UI5应用程序将正常工作。

Neo-app.json

"路线":[
     {
       " path":" srv_api/",
       "目标":{
         " type":"目的地",
         " name":" srv_api",
         " entryPath":"/"
       },
       " description":"要在运行应用程序时将虚拟目标映射到真实目标(hc_destmapping URL参数)"
     },
 

但是,当我们有多个开发人员在处理该应用程序时,这种情况就会下降。 我们共享相同的git repo,因此neo-app.json是相同的。 目标指向开发人员1的url,因此,如果开发人员2对db模型/服务和UI进行了更改,则目标需要更改以及许多其他问题。

我阅读此博客的方式( https://blogs.sap.com/2018/10/08/using-the-destination-service-in-the-cloud-foundry-environment/)-特别是评论 ,则我不需要目的地,因为它是云原生应用程序,并且未连接到外部源。

我试图了解需要进行哪些更改才能"内部"进行路由,并能够独立于其他开发人员进行开发,构建和测试。

mta.yaml文件

 ID:NodeAndUI5
 _schema-version:" 2.1"
 描述:节点和UI5-无目的地测试
 版本:0.0.1
 模块:
   -名称:NodeAndUI5-db
     类型:hdb
     路径:db
     参数:
       记忆体:256M
       磁盘配额:256M
     要求:
       -名称:NodeAndUI5-db-hdi-container
   -名称:NodeAndUI5-srv
     类型:nodejs
     路径:srv
     参数:
       内存:512M
       磁盘配额:256M
     提供:
       -名称:srv_api
         特性:
           网址:$ {default-url}
     要求:
       -名称:NodeAndUI5-db-hdi-container


   -名称:app
     类型:html5
     路径:应用
     参数:
        磁盘配额:256M
        记忆体:256M
     构建参数:
        制造商:咕unt声
     要求:
      -名称:uaa_NodeAndUI5


 资源:
   -名称:NodeAndUI5-db-hdi-container
     类型:com.sap.xs.hdi-container
     特性:
       hdi-container-name:$ {服务名称}


   -名称:uaa_NodeAndUI5
     参数:
        路径:./xs-security.json
        服务计划:应用
        服务:xsuaa
     类型:org.cloudfoundry.managed-service


 

xs-app.json文件

 {
   " welcomeFile":"/app/index.html",
   " authenticationMethod":"路由",
   "登出": {
     " logoutEndpoint":"/img/do/logout"
   },
   "路线":[
     {
       " source":"/srv_api/(.*)$",
       " target":" $ 1",
       " authenticationType":"无",
       " destination":" srv_api",
       " csrfProtection":false
     },
     {
       " source":" ^/app/(.*)$",
       " target":" $ 1",
       " localDir":" webapp"
     }
   ]
 }
 

此处的Git回购- https://github.com/princeneil/capdest.git

致谢

尼尔

付费偷看设置
发送
1条回答
compass1988
1楼-- · 2020-08-27 11:11

嗨,尼尔,

我不检查细节,我建议您手动编辑Web模块的运行设置,然后选择在Cloud Foundry上运行的选项。 然后,您需要一个xs-app.json来进行反向代理配置。 请以 gregorwolf/bookshop-nodejs 为例。

最诚挚的问候
格雷戈尔

一周热门 更多>