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的原創文章,請關注公衆號"汪子熙":