我应该使用OData服务器还是自定义XSJS服务实现?

时间:2017-01-26 10:02:20

标签: javascript api odata sap hana-xs

我们正在使用SAP HCP。对于我们的应用程序,我们需要提供Web API。 我们不确定为此使用OData服务或自定义XSJS服务实现。

我们需要完成的一些事情。所有项目还需要进行一定的用户授权。

  • 从数据库中选择数据
  • 将数据写入数据库
  • 提供不会对数据库执行CRUD操作的API函数,例如在后台将数据发送到另一台服务器

据我所知,OData服务只适合前两项,但没有提供一种方法来做任何与数据库(CRUD)无关的事情。它是否正确?

这种情况有什么最佳做法吗?欢迎提出正确方向的任何建议和指点。

1 个答案:

答案 0 :(得分: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);

检查任何GET或POST请求&请求参数你可以使用$ .request。有了这些,您就可以执行CRUD操作

有关详细信息,请参阅XSJS API参考 http://help.sap.com/hana/SAP_HANA_XS_JavaScript_API_Reference_en/

对于将数据发送到另一台服务器,一种方法是通过第二台服务器提供Web服务。 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目的地&amp;发送数据https://help.hana.ondemand.com/help/frameset.htm?06ca24043b0f4eb78cf39c6bc1d8a8dc.html