Jerry以前的公众号文章 什么?在SAP中国研究院里还须要会PHP开发?提到了一个SAP Kyma的应用场景:php
旅行兼社交达人伊森,使用通过SAP Kyma扩展以后的WordPress这个网站来写博客。伊森每次在WordPress上发表一篇博客以后,WordPress会暗地里向Kyma实例发送一个“博客建立”的事件,而且把建立好的博客内容做为事件参数传递给Kyma。部署在后者上的事件响应函数,调用各大社交媒体平台的create API进行对应帖子的建立。这样伊森轻松地实现了文章的“一次发布,各大平台开花”的目的。程序员
从本文开始,Jerry会逐一介绍这个扩展场景的技术实现步骤。该扩展场景的实现原理和使用SAP Kyma对SAP C/4HANA进行扩展的机制是同样的。好比把WordPress的博客发布事件想象成C/4HANA Service Cloud里一个服务订单的建立事件,咱们能够根据本身实际业务需求在Kyma上编写对应的事件处理函数。编程
在以前的文章 什么?在SAP中国研究院里还须要会PHP开发?里Jerry已经介绍了如何安装WordPress的Kyma插件。须要强调的是,若是用Kyma对C/4HANA进行扩展,那么后者针对Kyma的插件同WordPress针对Kyma的插件同样,是由SAP负责提供和维护的,你们即便不了解Jerry本文介绍的这些细节,同样能很好的完成扩展开发工做。json
本文主要介绍如何在WordPress和Kyma实例间创建互相信任的链接,而且将WordPress指定的事件发布到Kyma上去。api
WordPress的Kyma插件安装完毕后,在设置选项里,能看到对应Kyma链接的维护界面。
这里最重要的字段是须要维护一个指向Kyma Application Connector服务的url,即下图的字段“Kyma Connection”.浏览器
以及在此处维护您到底想把WordPress的哪些事件,注册到Kyma上。编程语言
注册完毕后,在WordPress的Kyma插件界面里维护的这些事件,就会出如今Kyma service catalog(服务目录)界面里。经过这种事件注册机制,避免了WordPress和Kyma的紧耦合关系:工做于Kyma之上的扩展开发人员即便对WordPress的技术细节彻底不了解,也丝绝不影响其扩展开发工做:只须要在Kyma的服务目录里,找到WordPress暴露出来的事件,用本身喜欢的编程语言开发对应的事件响应函数便可。函数
回到WordPress的Kyma维护界面里的Kyma Connection字段,到底须要维护什么样的url?post
在Kyma里建立一个新的应用,点击Connection Application这个按钮,弹出来的这个对话框里的url便是咱们要找的url.网站
在咱们把url复制到WordPress的Kyma插件里以前,咱们能够先在浏览器里访问这个url,看看会返回什么内容:
这个JSON响应的第一个字段csrUrl(Certificate Signing Request)和最后一个字段certificate,包含的信息用来生成用于在WordPress和kyma之间创建SSL链接所必需的数字证书。而api结构的几个字段则是Kyma Service Catalog注册的endpoint.
咱们把这个url复制到WordPress的Kyma插件里,点击Connect按钮,便可发起指向Kyma实例的链接。
咱们以调试模式启动本地WordPress,点击Connect按钮,
设置在class-connector.php的connect函数内的断点即触发。这个函数负责向传入的url发起HTTP GET请求,解析出Kyma返回的CSR url和Kyma服务目录的endpoint,而后再分别发起不一样的HTTP post请求,去拿到Kyma返回的数字证书以及将WordPress的指定事件注册到Kyma上去。
第73行的变量$body_json->csrUrl维护的是Kyma的Certificate Signning Request url,第75行向这个url发送一个post请求,拿到响应:
解析响应里包含的certificate信息,存储成对应的本地文件:
接下来和Kyma实例的交互,须要使用到这些存储在WordPress本地的数字证书文件:
而须要注册到Kyma上的WordPress事件,又是采用何种格式发送到Kyma的呢?
浏览器里访问url:<安装WordPress的主机名>/index.php/wp-json, 便可获得全部API列表:
WordPress的Kyma插件会根据用户在插件界面维护的待注册事件,拼装成对应的JSON字符串而后经过HTTP post发给Kyma:
注册成功后,在Kyma控制台的应用界面的服务和事件列表里,就能看到WordPress的对应记录了:
同时在Kyma的服务目录里,出现了Jerry以前在WordPress的Kyma插件界面里维护的WordPress connector名称和描述信息:
至此WordPress在Kyma上的注册就成功完成了,在Kyma上负责实现WordPress事件响应函数开发的程序员们就能够开工了。这部分的开发,Jerry接下来的文章会继续介绍。
Jerry在进行本文介绍的WordPress同Kyma创建链接的实际操做时,获得了个人同事,SAP成都研究院C4C团队开发人员Li Sherry的大力支持和帮助,这里表示感谢。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":