我们正在使用SAP HCP。对于我们的应用程序,我们需要提供Web API。 我们不确定为此使用OData服务或自定义XSJS服务实现。
我们需要完成的一些事情。所有项目还需要进行一定的用户授权。
据我所知,OData服务只适合前两项,但没有提供一种方法来做任何与数据库(CRUD)无关的事情。它是否正确?
这种情况有什么最佳做法吗?欢迎提出正确方向的任何建议和指点。
答案 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