一個簡單的RESTful例子


 

 

首先我們創建一個邏輯類,它負責邏輯運算。

 

我們可以創建自己的方法和signature,里面是運算邏輯。這個類還不能用於集成,我們還需要一個解析類。

 

創建解析類ZCL_DEMO_HANDLER。它需要繼承IF_HTTP_EXTENSION和IF_REST_APPLICATION兩個接口。我們要實現解析邏輯,則需要重寫HANDLE_REQUEST方法,該方法將用於解析HTTP傳來的指令。

 

HANDLE_REQUEST方法只有一個參數SERVER,但是該參數有很多字段。

 

首先我們在常量中,需要注冊服務的URI,這里是/SAP/BC/ZDEMO/ZTESTING,后面的SICF配置中可以看到它是如何來的。

lt_input和wa_input用於存放JSON轉換的數據,如果JSON外部有中括號,則會轉換成內表,如果沒有則會轉換成工作區。

lv_result則用於存放邏輯運算的返回值。

因為邏輯類有3個input和1個output,所以這里也是3個輸入字段和1個返回字段

 

接入參數如圖,這個應用比較簡單,則只需要解析URI和JSON即可。

常用的參數有:

  • Lv_method: 即HTTP方法
  • Lv_parameter: 即URI后面的顯式QUERY
  • Lv_langu: 即語言
  • Lv_path: 即URI
  • Lv_host: 即服務器地址
  • Lv_agent: 即用戶agent
  • Lv_token: 即用戶token,可用於權限控制
  • Lv_body: 即JSON字符串

 

運算部分,如果收到的URI對應本服務,則調用邏輯類的方法並計算。

 

這里以JSON返回計算結果。

 

創建好邏輯類和解析類,還需要在SICF中注冊服務。我們創建了一個叫ZDEMO的節點下的ZTESTING服務。

 

ZTESTING服務需要設置賬號密碼。

 

ZTESTING服務也還需要設置解析類,即ZCL_DEMO_HANDLER

 

右鍵激活服務后,用戶就可以通過路徑和服務名稱調用服務了。它們合起來也就是前面代碼里的服務地址了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM