第三方应用如何在SAP Kyma上进行服务注册
Jerry之前的公眾號文章 什么?在SAP中國研究院里還需要會PHP開發?提到了一個SAP Kyma的應用場景:
旅行兼社交達人伊森,使用經過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本文介紹的這些細節,一樣能很好的完成擴展開發工作。
本文主要介紹如何在WordPress和Kyma實例間建立互相信任的連接,并且將WordPress指定的事件發布到Kyma上去。
WordPress的Kyma插件安裝完畢后,在設置選項里,能看到對應Kyma連接的維護界面。
這里最重要的字段是需要維護一個指向Kyma Application Connector服務的url,即下圖的字段“Kyma Connection”.
注冊完畢后,在WordPress的Kyma插件界面里維護的這些事件,就會出現在Kyma service catalog(服務目錄)界面里。通過這種事件注冊機制,避免了WordPress和Kyma的緊耦合關系:工作于Kyma之上的擴展開發人員即使對WordPress的技術細節完全不了解,也絲毫不影響其擴展開發工作:只需要在Kyma的服務目錄里,找到WordPress暴露出來的事件,用自己喜歡的編程語言開發對應的事件響應函數即可。
回到WordPress的Kyma維護界面里的Kyma Connection字段,到底需要維護什么樣的url?
在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名稱和描述信息:
Jerry在進行本文介紹的WordPress同Kyma建立連接的實際操作時,得到了我的同事,SAP成都研究院C4C團隊開發人員Li Sherry的大力支持和幫助,這里表示感謝。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
總結
以上是生活随笔為你收集整理的第三方应用如何在SAP Kyma上进行服务注册的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 真人快打11终结技怎么放?全角色终结技出
- 下一篇: 使用WordPress的Kyma plu