使用前提是
1.完成暴露接口练习,完成项目部署,BTP上拥有Live的auth,db,destination三个服务实例
1.暂时移除后端和前端的权限控制
2.本地启动项目
为了更方便的进行本地测试,我们首先移除掉本地后端服务的权限控制service-auth.cds,
为方便你回到可部署状态,下方是代码
using { RiskService } from './risk-service';
annotate RiskService.Risks with @(requires: 'authenticated-user');
annotate RiskService.Mitigations with @(restrict : [
{
grant : [ 'READ' ],
to : [ 'RiskViewer' ]
},
{
grant : [ '*' ],
to : [ 'RiskManager' ]
}
]);
然后确保命令行进程已经完成cf login操作
在根目录执行
cds bind -2 cpapp-auth,cpapp-db,cpapp-destination
这个命令实质上是利用当前cf login的身份来将各个服务实例的key保存在本地的 .cdsrc-private.json文件内,来在本地启动项目时连接到云端
现在就可以本地启动后端了,和平时不同的是,要使用云上已经部署好的服务实例,需要为命令添加参数
cds watch --profile hybrid
此时访问后端预览页面,点击进入数据服务,就可以看到实际云端数据库内的数据了
接下来,同时在本地启动装载了前端代码的approuter
和之前类似,确保approuter文件夹下的default-env.json内的srv-destination指向的是BAS内本地启动的后端服务地址(一般是http://localhost:4004), 然后修改app/approuter/xs-app.json内的authenticationMethod参数值为none
其实我更推荐维护多个版本的xs-app.json例如xs-app-dev.json和xs-app-prod.json,
和switchToDev.sh脚本来完成所有本地开发时的动作,脚本内的指令可能包括删除当前的xs-app.json文件,复制xs-app-dev.json为xs-app.json,将service-auth.cds重命名为service-auth.bak
同样的,添加一个switchToProd.sh,删除当前xs-app.json文件并复制xs-app-prod.json为xs-app.json,并将service-auth.bak重命名为service-auth.cds
这样做带来了方便,但也引入了复杂度,那就是修改代码时需要记得在dev和prod两个版本内都完成修改,请自行斟酌
再启动一个命令行进程,进入app/approuter后执行
npm start
之后打开approuter的预览页面,即可看到本地前端+本地后端+云上db内的数据的组合了,本练习其实是基于CAP官方文档https://cap.cloud.sap/docs/node.js/authentication#xsuaa-setup的,后续有任何问题都可以在https://cap.cloud.sap/docs/进行查阅,希望本系列教程为你带来了帮助。
关于本文内容有任何问题或见解,欢迎在评论区留下你的想法
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 46 | |
| 40 | |
| 38 | |
| 35 | |
| 30 | |
| 28 | |
| 27 | |
| 24 | |
| 24 | |
| 22 |