【HANA系列】SAP HANA使用XS和HTTP创建proxy

时间:2022-07-28 16:53:09
公众号: SAP Technical
本文作者: matinal
 

【HANA系列】SAP HANA使用XS和HTTP创建proxy

 

前言部分

大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

正文部分

创建代理由3个HANA开发工件组成:

1、一个server.xshttpdest文件,用于定义我们要访问的服务器的详细信息

2、一个用于URL重写的.xsaccess文件

3、一个用于程序逻辑的proxy.xsjs脚本

第一步:创建server.xshttpdest文件,内容及解释如下:

​
description = “描述”; 
host = “服务器URL”; 
port = 80;
useProxy = false; 
useSSL = false; 
authType = none; 
timeout = -1;

​


第二步:创建.xsaccess文件内容如下:

​
{
     “exposed” : true, 
     “authentication” : {
        “method”: “Basic”
     },
     “rewrite_rules”: [{
         “source”: “renderMap”,
         “target”: “proxy.xsjs”
     }],
     “cache-control”: “no-cache no-store”
}

​

第三步:创建proxy.xsjs文件内如如下:

function proxy() {
    var destPackage = “路径”;
    var destName = “服务器”;
    
    // 建立HTTP连接
    var dest = $.net.http.readDestination(destPackage, destName);
    var client = new $.net.http.Client();
    // 发送POST请求
    var req = new $.web.WebRequest($.net.http.POST, “/path/to/resource”);
 
    // 将原始请求的内容设置为请求
    req.setBody($.request.body.asString());
 
    // 发送请求并获取响应
    client.request(req, dest);
    var response = client.getResponse();
    $.response.status = $.net.http.OK;
    // 返回响应
    $.response.contentType = “application/json”;
    $.response.setBody(response.body.asString());
}
try {
     proxy();
} catch (e) {
    // 将错误返回为JSON进行调试

     var errorResponse = {“error”: e.toString()};
     $.response.status = $.net.http.INTERNAL_SERVER_ERROR;
     $.response.contentType = “application/json”;
     $.response.setBody(JSON.stringify(errorResponse));

}

​