使用類似搭積木的低程式碼開發方式進行SAP API開發
Jerry之前的文章 SAP API開發方法大全 介紹的第七種SAP API開發方式,SAP Data Intelligence Graph,實際上是Low Code Development(低程式碼開發)的一種體現。
本文透過一個具體的例子來介紹,如何在SAP Data Intelligence Modeler的圖形化介面裡,透過類似小朋友玩積木的方式,將各種SAP釋出的標準Operator搭配在一起,再透過少量的編碼,得到一個支援增刪改查的API.
開啟Modeler的Operators標籤頁,看到位於不同Categories下面總共存在超過300個Operator.
每個Operator可以實現某領域的一個功能,比如連線ABAP系統並讀取資料,生成隨機資料,將資料寫入某持久化儲存,呼叫API等等。我們透過把這些Operators組合起來, 最後實現一個端到端的場景。
在動手使用這些Operator組建API之前,讓我們先試試一些最簡單的Operator. 拖拽一個擁有《星際爭霸》里人族雷達站圖示的Data Generator到編輯頁面裡。
這個Operator定義了一個Output Port, 型別為String,意思是它生成的隨機數,以String的型別,透過該Output Port傳遞給其他Operator.
上圖Data Generator的Output Port指向了另一個Terminal Operator 的Input Port, 這代表了資料流的傳遞方向,從Data Generator輸出到Terminal.
這些作為節點的Operators以及連線節點的有向線段組合在一起,構成了SAP Data Intelligence裡的Graph(圖).
SAP Data Intelligence官網上提到了其“擁抱開放技術”的一個特質:
比如SAP Data Intelligence提供的Kafka Consumer和Producer Operator,給其維護一個Kafka Broker的地址,就能無需程式設計,輕鬆實現生產者-消費者場景:
現在回到本文開頭提到的增刪改查API的需求。這個API可以讓消費者透過HTTP的方式呼叫,透過API進行增刪改查的操作物件僅僅維護在Graph執行時的記憶體裡,實際就是JavaScript簡單實現的物件鍵值對,為簡單起見,省略了持久化操作。
這個由Graph實現的API最後如下圖所示,總共由6個Operator組成,其中一個HTTP Server,四個JavaScript Operator和一個Multiplexer.
根據幫助文件,HTTP Server這個Operator封裝了最簡單的HTTP伺服器的功能,能夠在使用者配置的endpoints上接收HTTP請求。
如何配置Operator?右鍵選單裡選擇“Open Configuration”, 點選Routes的編輯圖示:
根據SAP幫助文件,HTTP Server Operator只負責接收HTTP請求,並不負責收到這些請求後的業務處理,而是透過Output Port交由Graph下游的其他Operator完成。Route配置資訊一目瞭然,在路徑/objects上接收到帶引數id的HTTP請求後,按照HTTP請求型別,分別將請求透過get, post和delete三個Output Port 轉發給其他Operators.
接下來我們實現HTTP GET操作的響應邏輯。從Operators標籤頁裡拖拽一個JavaScript Operator到編輯頁面裡,重新命名為GET Handler,建立一個名叫request的Input Port,將其連線到HTTP Server的get Output Port.
右鍵單擊GET Handler,選擇Open Script選單項:
由於預見到HTTP Server接收到GET,POST和DELET請求後,都有一些通用的邏輯要處理,比如從URL裡解析出消費者傳入的物件ID引數值,並交由下游Operator進一步處理。因此這裡的設計是這三個Handler在收到請求後,僅僅構造一個命令物件,該物件包含這次HTTP請求所對應的記憶體中JavaScript物件鍵值對的操作型別(GET請求對應select,POST請求對應insert,DELETE請求對應delete)和傳入的引數ID值:
從上圖看出這三個Handler的實現程式碼,除了透過command Output port傳給下游節點的操作型別(objectStore.command)存在差異之外,並無其他區別。
任意一個HTTP請求被HTTP Server接收後,只會觸發這三個Handler其中一個。三種Handler產生三種可能的輸出操作,透過名為command的Output Port傳遞給上圖中圖示為三叉戟的三路複用器。這個複用器確保最後一個JavaScript Handler能夠同時處理這三種可能性,執行完對應的鍵值對操作後,將處理結果經過上圖橙色虛線標註的資料流,傳遞給HTTP Server的Input Port.
在名為Object Store的JavaScript Handler內部,用變數objects定義一個空的JavaScript物件,作為鍵值對的儲存實體。針對select,insert和delete三種操作,分別這個物件來實現增刪改查。
這樣該Graph從接收到HTTP請求,到處理完請求將結果寫入HTTP Server名為Response的Input Port,形成了一個完整的閉環。
Graph開發完畢後,點選執行按鈕,待其處於執行狀態後,就可以使用Postman等工具或程式語言消費了。在控制檯將其Runtime Handle抄下來:
首先測試API讀取功能,試圖讀取一個ID為1的例項:
看到返回的提示資訊“no obect with ID”就是我們在Object Store JavaScript Handler裡硬編碼的錯誤處理。
接著呼叫HTTP Post插入一條key為1的JavaScript物件:
然後用HTTP GET讀取,這次讀取成功:
使用HTTP DELETE請求刪除這個ID為1的物件:
希望本文能幫助大家對SAP Data Intelligence裡這種低程式碼開發方式有一個最直觀的瞭解,感謝閱讀。
更多閱讀
-
SAP OData程式設計指南
-
30分鐘用Restful ABAP Programming模型開發一個支援增刪改查的Fiori應用
-
一個13年ABAP老兵的建議:瞭解這些基礎知識,對ABAP開發有百利而無一害
-
在SAP雲平臺上部署和執行Docker應用
-
如何使用API的方式消費SAP Commerce Cloud的訂單服務
-
從ABAP Netweaver的SICF到SAP Kyma的Lambda Function
-
周伯通的空明拳,米諾斯的星塵傀儡線,SAP Kyma的Serverless
-
從SAP Leonardo到SAP Data Intelligence
-
SAP API開發方法大全
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2684633/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 最佳實戰 | 如何使用微搭低程式碼基於模板開發小程式
- 「積木庫」GraphQL技術搭建的無程式碼開發平臺
- 實戰 | 使用微搭低程式碼3分鐘開發表單應用
- 使用API進行區塊鏈開發API區塊鏈
- 從玩家體驗出發,用搭積木的方式做遊戲關卡遊戲
- 軟體開發正確開啟方式:低程式碼+微服務微服務
- 使用SAP WebIDE進行SAP Cloud Platform Business Application開發WebIDECloudPlatformAPP
- RestCloud API低程式碼開發平臺,實現無程式碼快速釋出APIRESTCloudAPI
- 低程式碼正在改變企業的應用開發方式
- 這個低程式碼報表開發平臺,操作類似Excel,用好了不需要加班Excel
- 使用低程式碼開發平臺 YonBuilder 移動開發,開發閱讀 APP 教程UI移動開發APP
- 秀出新天際的SpringBoot筆記,讓開發像搭積木一樣簡單Spring Boot筆記
- API低程式碼開發平臺,全面管控企業的API資產API
- 低程式碼開發平臺,可無需程式碼快速釋出APIAPI
- 低程式碼開發和零程式碼開發有哪些區別
- 騰訊會議 x 微搭:用微搭低程式碼快速開發簽到應用
- Appsmith:真正的低程式碼開源開發工具APPMIT
- Python進行開發的兩種方式Python
- 低程式碼開發對軟體開發流程的影響
- 低程式碼開發平臺是什麼意思?低程式碼開發平臺優勢!
- 為什麼說無程式碼開發比低程式碼開發更好?
- 什麼才是低程式碼開發?
- SAP API開發方法大全API
- API低程式碼開發平臺的實際應用及好處API
- 低程式碼應用程式開發開始興起
- 低程式碼開發平臺的特點
- 低程式碼開發平臺的敏捷之力敏捷
- 低程式碼開發平臺的好處
- 開源低程式碼平臺開發實踐一:低程式碼開發探討與技術選型
- 使用Devstack進行開發dev
- 使用 Devstack 進行開發dev
- 低程式碼程式開發和“ Devigners”新角色dev
- 使用SAP API portal進行SAP SuccessFactors的API測試API
- 現在低程式碼開發平臺的發展分析
- 用低程式碼開發平臺開發應用可靠嗎
- “低程式碼開發”與“傳統IT開發”的區別是什麼?
- 低程式碼開發有哪些好處?
- 低程式碼是開發的未來嗎?淺談低程式碼平臺