雲端的ABAP Restful服務開發

愉快的暑假結束了,今天是小朋友新學期開學後的第一個週日,不知道各位家長是否和小朋友們一塊兒,已經適應了新學期的生活了麼?
Jerry從少的可憐的屬於本身的週末時光擠了一小部分時間出來,寫了這篇文章。編程

Jerry以前的一篇文章 從ABAP Netweaver的SICF到SAP Kyma的Lambda Function,我曾經提到過,若是想將ABAP Netweaver裏的資源以Restful API的方式暴露出來,SICF這個事務碼絕對是一大利器。瀏覽器

clipboard1,1

咱們只須要在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:服務器

clipboard2,2

具體步驟在我以前的文章使用Java+SAP雲平臺+SAP Cloud Connector調用ABAP On-Premise系統裏的函數 裏介紹過。網絡

對於ABAP開發人員來講,一個好消息是,SAP Cloud Platform現在也支持ABAP運行環境了。如今咱們經過在SAP雲平臺 ABAP運行環境裏完成相似以前在On-Premises ABAP系統的SICF事務碼裏的開發任務,來感覺ABAP到了雲端以後,給ABAP開發者帶來的巨大便利。框架

clipboard3,3

按照Jerry以前的文章在SAP雲平臺ABAP編程環境上編寫第一段ABAP程序 裏介紹的步驟,經過ABAP Development Tools鏈接SAP雲平臺 ABAP運行環境的一個實例,完成登陸後,後續的操做步驟,同使用ABAP Development Tools鏈接一個On-Premises ABAP系統,幾乎沒有差異。編程語言

clipboard4,4

下圖是在雲上的ABAP環境裏,容許咱們建立的ABAP對象列表,既有ABAP開發人員感到親切的ABAP字段對象,ABAP開發包,ABAP消息類等等,也有上了雲端以後的新面孔,好比Cloud Communication Management和Cloud IAM等。
爲了完成在On-Premises的SICF事務碼裏的開發工做,如今咱們要在雲上的ABAP環境裏建立一個新的HTTP Service:函數

clipboard5,5

新建一個名爲ZHELLOWORLD的service,建立完畢以後界面以下:url

clipboard6,6

ABAP老司機們看到這界面,當即知道下一步怎麼作了吧。點擊Handler class,就能夠進入ABAP類的編輯界面,實現這個HTTP服務的業務邏輯。而經過url字段裏維護的值,咱們能夠在PC或移動設備裏,瀏覽器或代碼裏訪問這個服務。
該服務實現類和On-Premises的區別,不過是接口名稱從IF_HTTP_EXTENSION換成了IF_HTTP_SERVICE_EXTENSION. 固然,前者由於是直接在雲端編寫的ABAP代碼,因此還要遵循Jerry以前的文章 在SAP雲平臺ABAP編程環境上編寫第一段ABAP程序 裏提到的那些限制。spa

clipboard7,7

上述的ABAP代碼只是簡單地返回給消費者一個Hello World的文本信息,保存激活以後,把url貼到瀏覽器裏,就能看到指望的Hello World:3d

clipboard8,8

咱們從url裏,容易得出這樣的結論,SAP Cloud Platform ABAP運行環境裏支持建立的HTTP服務,其實現原理,其實就是在Netweaver服務器的SICF路徑/sap/bc/http/sap/下面增長一個新的節點罷了,只是這個操做,在雲端再也不須要由ABAP開發人員手動完成,雲端的ABAP環境,會自動建立這一底層設施。
但願傳統ABAP開發人員,能從這個最簡單的Hello World級別的例子,體會到雲端ABAP開發的便利之處。感謝閱讀。

要獲取更多Jerry的原創文章,請關注公衆號"汪子熙":
公衆號截圖

相關文章
相關標籤/搜索