API管理服务中基于网关OData System Alias的API路由配置

2020-08-23 18:57发布

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

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


专家们,

我遇到一种情况,需要将来自2个不同ERP系统的通用OData服务(例如/SALESORDER_SRV)公开为API服务。 使用系统别名作为url中的对象时,OData可以通过网关系统正常工作。

例如:https://gateway-system/sap/opu/odata/sap/SALESORDER_SRV; o = ERP_1 /SalesOrderListSet(SoId = 1234)

https://gateway-system/sap/opu/odata/sap/SALESORDER_SRV; o = ERP_2 /SalesOrderListSet(SoId = 6789)

使用SCP的API管理服务,我已经为网关配置了API提供程序,并且可以为上述OData服务创建API。

现在,在"目标端点"部分中,URL中没有系统别名对象。

如何通过代理端点服务调用将特定的系统别名添加到目标端点服务中?

如果客户端应用程序使用了上述API服务并以" system_alias"作为标头参数触发,则是否可以使用"策略类型"(提取变量)提取该参数,然后将" system_alias"标头值设置为Target EndPoint Properties?/p>

谢谢

Praveen Varriam

(51.2 kB)

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

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


专家们,

我遇到一种情况,需要将来自2个不同ERP系统的通用OData服务(例如/SALESORDER_SRV)公开为API服务。 使用系统别名作为url中的对象时,OData可以通过网关系统正常工作。

例如:https://gateway-system/sap/opu/odata/sap/SALESORDER_SRV; o = ERP_1 /SalesOrderListSet(SoId = 1234)

https://gateway-system/sap/opu/odata/sap/SALESORDER_SRV; o = ERP_2 /SalesOrderListSet(SoId = 6789)

使用SCP的API管理服务,我已经为网关配置了API提供程序,并且可以为上述OData服务创建API。

现在,在"目标端点"部分中,URL中没有系统别名对象。

如何通过代理端点服务调用将特定的系统别名添加到目标端点服务中?

如果客户端应用程序使用了上述API服务并以" system_alias"作为标头参数触发,则是否可以使用"策略类型"(提取变量)提取该参数,然后将" system_alias"标头值设置为Target EndPoint Properties?/p>

谢谢

Praveen Varriam

(51.2 kB)
付费偷看设置
发送
1条回答
spaceman01
1楼 · 2020-08-23 19:34.采纳回答

嗨,

此问题已通过以下操作解决。

在请求API代理API中,我包括了自定义标头,并相应地配置了APIProxyEndPoint和APITargetEndPoint文件以处理动态路由URL。

1)从API门户导出API软件包并解压缩该软件包。

2)从APIProxyEndPoint文件夹中打开default.xml文件,并包括如下所示的routeRule,条件和targetEndPointName。

 
   
  systemERP1 
  request.header.sap-system-alias =" ERP_1" 
  ERP1 
  1 
 
   
   
  systemERP2 
  request.header.sap-system-alias =" ERP_2" 
  ERP2 
  2 
 
   
 
 

3)从文件夹APITargetEndPoint中,删除default.xml并创建2个名称分别为ERP1.xml和ERP2.xml的xml,并添加以下几行。 保持其他xml标签不变。

 
      ERP1 
     网关
      false 
     /sap/opu/odata/SALESORDER_SRV; o = ERP_1 
 

4)在根文件夹APIProxy文件夹下,如下所示添加targetEndPoint标记,并保持所有其他标记不变。

 
          ERP1 
  ERP2 
     
 

5)压缩具有必需API名称的捆绑软件,并在压缩为.zip文件时将APIProxy保留为根文件夹。

6)导入更新的程序包后,您将获得xml文件中配置的所需路由规则。

现在只需使用自定义标头" sap-system-alias"及其必需的值ERP_1或ERP_2,即可通过任何REST工具或通过API测试控制台测试API。

基于标头值,将动态选择目标端点,并从所需的后端ERP/系统获取结果。

您还可以参考以下链接以获取更多详细信息。

https://blogs.sap.com/2019/05/27/dynamic-routing-using-sap-cloud-platform-api-management/

https://help.sap.com/viewer/ 66d066d903c2473f81ec33acfe2ccdb4/Cloud/zh-CN/5aceb48b8a644b54888db21a41f717fe.html

谢谢!

Praveen Varriam

一周热门 更多>