如何消费外部服务。

2020-08-22 05:01发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好帽子专家 我已经初始化了一...

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

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


你好帽子专家

我已经初始化了一个简单的CAP节点项目,并且

我想知道如何在其他服务中使用服务。 我在Foundry中部署了我的第一个服务,并且可以正常工作。

实体位置:托管{
   密钥ID:整数;
   国家:字符串(111);
 }
 ID;国家/地区;
 1;秘鲁
 2;美国
 

对于此服务,我已经在子帐户中创建了一个基本目的地,未进行身份验证,其名称为:DEST_LOCATION,并在我的空间内安装了名为dest_instance的服务

第二项服务必须调用第一个服务并添加一个额外的字段

实体人:受管理的{
   密钥ID:整数;
   名称:字符串(111);
   locationId:整数;
 }
 ID;名称;国家;
 1;彼得; 1
 2;俊; 2
 

与Person?&$ expand = Location并且此发球的响应必须具有以下结果:

"值":[
     {
       " ID":" 1",
       " name":" Peter",
       " locationId":1
       " country":" PERU"
     },
     {
       " ID":" 2",
       " name":" Jhon",
       " locationId":2
       "国家":"美国"
     }
 ]
 

这是我的package.json

 ID:人
 _schema-version:" 3.1"
 版本:0.0.1
 参数:
   启用并行部署:true
 模块:
   -名称:person-db
     类型:com.sap.xs.hdi
     路径:gen/db
     构建参数:
       忽略:[" node_modules/"]
     参数:
       记忆体:256M
       磁盘配额:256M
     要求:
       -名称:DB_PERSON
   -名称:person-srv
     类型:nodejs
     路径:gen/srv
     构建参数:
       忽略:[" node_modules/"]
     参数:
       内存:512M
       磁盘配额:256M
     提供:
       -名称:srv_api
         特性:
           网址:$ {default-url}
     要求:
       -名称:DB_PERSON
       -名称:uaa_des
       -名称:dest_instance
       -名称:srv_api
         组:目的地
         特性:
           名称:DEST_LOCATION
           网址:"〜{url}"
           forwardAuthToken:true
 资源:
   -名称:DB_PERSON
     类型:com.sap.xs.hdi-container
     特性:
       hdi容器名称:DB_PERSON
     参数:
       配置:
         模式:SCHEMA_PERSON
   -名称:uaa_des
     类型:org.cloudfoundry.existing-service
   -名称:dest_instance
     参数:
       服务计划:精简版
       服务:目的地
     类型:org.cloudfoundry.existing-service
 

还有我的package.json

 {
   " name":" person",
   " version":" 1.0.0",
   " description":"一个简单的CAP项目。",
   " repository":" <在此处添加您的存储库>",
   "许可证":" ISC",
   "依赖关系":{
     " @ sap/audit-logging":" ^ 3.1.0",
     " @ sap/logging":" ^ 5.1.0",
     " axios":" 0.19.0",
     "表达":" ^ 4.17.1",
     " http-proxy-middleware":" ^ 0.20.0",
     " @ sap/cds-odata-v2-adapter-proxy":"最新",
     " @ sap/cds":" ^ 3",
     " @ sap/xssec":" ^ 2.2.4",
     " hdb":" ^ 0.17.1",
     " passport":" ^ 0.4.1",
   
   },
   "脚本":{
     " start":" npx cds运行"
   },
   " cds":{
     "要求":{
       "D b": {
         " kind":" hana",
         "型号":[
           "D b",
           " srv"
         ]
       },
       " externalService":{
         " kind":" rest/odata",
         " model":"/地址",
         "凭据":{
           "目的地":" DEST_LOCATION",
         },
         " uaa":{
           " kind":" xsuaa"
         }
       }
     }
   }
 }
 

现在,我希望有人可以帮助我进行下一步。 我应该扩展de cds来在数据库中的person.cds中添加国家/地区字段吗?

在我的服务人员中,cds应该包括扩展名吗? 在我的服务中person.js我应该打电话给目的地以获得

const srv = cds.connect.to ('DEST_LOCATION')
const {Location} = srv.Location;

.....

我尝试了很多事情,任何帮助将不胜感激。

谢谢