2017-01-26 87 views
0

我們正在使用SAP HCP。對於我們的應用程序,我們需要提供一個Web API。 我們不確定爲此使用OData服務或定製的XSJS服務實現。我應該使用OData服務器還是自定義XSJS服務實施?

我們需要完成的一些事情。所有項目也需要做一定的用戶授權。

  • 從數據庫中選擇數據
  • 將數據寫入到數據庫
  • 提供不借此在數據庫上的CRUD操作,但例如在後臺將數據發送到另一臺服務器API函數

在我的理解中,OData服務只適合前兩項,但不提供任何與數據庫(CRUD)相關的任何操作。它是否正確?

這種情況下是否有最佳做法?任何建議和指向正確的方向是值得歡迎的。

回答

0

XSOData將無法執行非CRUD操作。藉助XSJS,您可以實現這一目標。我已經完成了內部部署 系統&上的所有三項要求,相同的概念也應該適用於HCP。

執行查詢&顯示數據的示例代碼:

var queryString = "SELECT * FROM Table"; 
var connection = $.db.getConnection(); // DB Connection 
var stmt = connection.prepareStatement(queryString); 
var rs = stmt.executeQuery(); 
var output = ""; 
while (rs.next()) // Column setting 
{ 
    output += ("Col1:"+rs.getString(0)+", Col2:"+rs.getString(1)+";"; 
} 
$.response.setBody(output); 

要檢查你可以用$ .request任何GET或POST請求&請求參數。有了這些,你可以執行你的CRUD操作

您可以參考XSJS API參考更多信息 http://help.sap.com/hana/SAP_HANA_XS_JavaScript_API_Reference_en/

將數據發送到另一臺服務器,一個方法是從第二個服務器提供網絡服務。 XSJS可以將Web請求發送到配置的目標,以便您可以將數據發佈到您的服務器。您將需要訪問你服務器上創建目標文件(.xshttpdest)

一些示例代碼:

var dest = $.net.http.readDestination("<package path to destination file>", "<destination file name>"); 
var client = new $.net.http.Client(); 
var req = new $.web.WebRequest($.net.http.POST, "/"); 
req.contentType = "application/json"; 
req.setBody("My data"); 
client.request(req, dest); 
var response = client.getResponse(); 

您可以在下面的鏈接找到的細節來創建一個HTTP目標&發送數據https://help.hana.ondemand.com/help/frameset.htm?06ca24043b0f4eb78cf39c6bc1d8a8dc.html

相關問題