从定制Java应用程序公开API的最佳实践

2020-09-03 22:10发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)社区, 我目前正在为我的一位客...

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

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


社区,

我目前正在为我的一位客户开发新的(Java),并且必须将其与外部系统集成。 我将通过CPI集成两个系统,但我的疑问是,我可以使用Java发布APIRESTful,但是:

  • 我必须直接将CPI连接到Java App吗? 就像HTTPS。
  • 我必须为此使用API​​管理吗?

先谢谢您

BR。

1条回答
绿领巾童鞋
2020-09-03 22:50 .采纳回答

嗨Germán,

Cloud Platform Integration服务本质上是一个消息代理。 而且,因此,您必须激发它才能发生某些事情。 "东西"就是我们所说的iFlow。 iFlow包含使用BPMN表示法的消息处理(主要是映射)。 与所有iFlow一样,它也具有所谓的发送者和接收者。 发送者,在部署iFlow时,将实现一个带有消息签名的端点,该消息签名将可供使用。也就是说,您的Java应用程序将充当HTPP客户端,并在SCP上对端点进行调用以触发iFlow处理。 接收器将是需要与Java应用程序集成的另一个系统。 因此,它将包含已处理消息的签名。 因此,在这种情况下,SCP将充当外部系统的客户端。 为此,它需要使用许多协议适配器之一,以便可以通过iDoc与FTP服务器,SAP System,常规HTPP/S(包括REST/OData)甚至某些自定义适配器进行通信。

上面说明的消息处理流程只是单向的。 意思是,您的Java应用程序上发生了一个事件(假设创建了新的客户记录)。 此事件必须调用SCP端点,以将新的客户记录发送到另一个外部系统。 为此,它必须调用SCP端点,以便SCP在发送数据之前,将处理从一个接口到另一个接口的消息映射字段,或者根据消息数据进行某种逻辑处理。

另一个反向流程将以相同的方式工作。 您将拥有另一个iFlow,现在您的Java应用程序是接收方系统,发送方将包含基于外部系统的消息签名。 一旦外部系统上发生事件,它就必须调用适当的端点,以便SCP可以将消息发送到Java应用程序。

在SCI上运行的所有iFlow仅在使用SSL时才起作用(与发送者打交道时) 系统)-因为端点将位于SCI之上。 接收器系统将取决于适配器,但是强烈建议您也使用SSL-因为此通信是通过Internet进行的。

API管理服务不需要结合使用 使用SCI-但可能如此。 您可能有一个确实实现某种形式的接口的系统,但是它不提供授权概念,或者您可能需要做一些高级的事情,例如控制谁可以在到达目的地之前访问API-这样您就可以 通过每次通话获利。 在这种情况下,可以使用API​​管理。 您可以控制每秒可以调用多少个API。 动态更改一些有效负载; 添加一些请求变量,甚至生成API密钥给愿意支付大量费用来使用您的API的客户。

SCI将不知道它是在调用通过API管理发布的API还是直接由Java应用程序提供的API。 所需的只是其适配器之一支持的协议-在这种情况下为HTTP适配器。

希望这会有所帮助。

最诚挚的问候,
Ivan

# p#

嗨伊万,

非常感谢您的回答。 对我来说非常有用。

亲切的问候,

Germán。

一周热门 更多>