0

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

我们需要完成的几件事。所有物品也需要做一定的用户授权。

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

据我了解,OData 服务仅适用于前两项,但不提供一种方法来执行与数据库 (CRUD) 无关的任何操作。这个对吗?

这种情况有什么最佳实践吗?欢迎任何建议和指向正确方向。

4

1 回答 1

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 请求,以便您可以将数据 POST 到您的服务器。您需要创建一个目标文件(.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

于 2017-02-01T14:03:43.620 回答