云端的ABAP Restful服务开发
愉快的暑假結束了,今天是小朋友新學期開學后的第一個周日,不知道各位家長是否和小朋友們一起,已經適應了新學期的生活了么?
Jerry從少的可憐的屬于自己的周末時光擠了一小部分時間出來,寫了這篇文章。
Jerry之前的一篇文章 從ABAP Netweaver的SICF到SAP Kyma的Lambda Function,我曾經提到過,如果想將ABAP Netweaver里的資源以Restful API的方式暴露出來,SICF這個事務碼絕對是一大利器。
我們只需要在SICF里合適的路徑下創建節點,為該節點創建一個ABAP類,就可以專注于實現接口定義的方法IF_HTTP_EXTENSION~HANDLE_REQUEST, 在里面編寫應用邏輯了。應用開發人員無需關注和操心這些ABAP類什么時候被實例化和調用,可以把這個HANDLE_REQUEST方法看作是一個回調函數,當請求到來時,由Netweaver的ICF框架(Internet Communication Framework)負責把請求路由到對應的ICF節點并創建ABAP類,調用HANDLE_REQUEST方法。
每個SICF節點會根據其路徑被分配一個url, 如果是Corporate網絡里,用瀏覽器或者編程語言直接訪問該url,就能消費SICF暴露的資源了。
如果想讓這個位于Corporate網絡內的url被Internet網絡訪問,就得借助SAP Cloud Connector:
具體步驟在我之前的文章使用Java+SAP云平臺+SAP Cloud Connector調用ABAP On-Premise系統里的函數 里介紹過。
對于ABAP開發人員來說,一個好消息是,SAP Cloud Platform如今也支持ABAP運行環境了。現在我們通過在SAP云平臺 ABAP運行環境里完成類似之前在On-Premises ABAP系統的SICF事務碼里的開發任務,來感受ABAP到了云端之后,給ABAP開發者帶來的巨大便利。
按照Jerry之前的文章在SAP云平臺ABAP編程環境上編寫第一段ABAP程序 里介紹的步驟,通過ABAP Development Tools連接SAP云平臺 ABAP運行環境的一個實例,完成登錄后,后續的操作步驟,同使用ABAP Development Tools連接一個On-Premises ABAP系統,幾乎沒有差別。
下圖是在云上的ABAP環境里,允許我們創建的ABAP對象列表,既有ABAP開發人員感到親切的ABAP字段對象,ABAP開發包,ABAP消息類等等,也有上了云端之后的新面孔,比如Cloud Communication Management和Cloud IAM等。
為了完成在On-Premises的SICF事務碼里的開發工作,現在我們要在云上的ABAP環境里創建一個新的HTTP Service:
新建一個名為ZHELLOWORLD的service,創建完畢之后界面如下:
ABAP老司機們看到這界面,立即知道下一步怎么做了吧。點擊Handler class,就可以進入ABAP類的編輯界面,實現這個HTTP服務的業務邏輯。而通過url字段里維護的值,我們可以在PC或移動設備里,瀏覽器或代碼里訪問這個服務。
該服務實現類和On-Premises的區別,不過是接口名稱從IF_HTTP_EXTENSION換成了IF_HTTP_SERVICE_EXTENSION. 當然,前者因為是直接在云端編寫的ABAP代碼,所以還要遵循Jerry之前的文章 在SAP云平臺ABAP編程環境上編寫第一段ABAP程序 里提到的那些限制。
上述的ABAP代碼只是簡單地返回給消費者一個Hello World的文本信息,保存激活之后,把url貼到瀏覽器里,就能看到期望的Hello World:
我們從url里,容易得出這樣的結論,SAP Cloud Platform ABAP運行環境里支持創建的HTTP服務,其實現原理,其實就是在Netweaver服務器的SICF路徑/sap/bc/http/sap/下面增加一個新的節點罷了,只是這個操作,在云端不再需要由ABAP開發人員手動完成,云端的ABAP環境,會自動創建這一底層設施。
希望傳統ABAP開發人員,能從這個最簡單的Hello World級別的例子,體會到云端ABAP開發的便利之處。感謝閱讀。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
總結
以上是生活随笔為你收集整理的云端的ABAP Restful服务开发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信运动怎么开启计步功能 权限设置方法
- 下一篇: 惠而浦空调售后电话(格兰仕收购惠而浦股权