0

我想通过 OData V2 协议将其他信息从我的 SAPUI5 前端发送到我的 CAP 后端。这些信息不是请求发送到的实体的一部分。我该如何解决这个问题?

我已经尝试添加方法urlParameters的属性。这似乎适用于传出请求 URL(我正在使用批处理请求):ODataModel.create

POST Requirements?amount=1 HTTP/1.1
sap-contextid-accept: header
Accept: application/json
Accept-Language: de
DataServiceVersion: 2.0
MaxDataServiceVersion: 2.0
Content-Type: application/json
Content-Length: 346

{<Body>}

但是,我在后端找不到它们。我正在使用srv.before请求处理程序,但找不到访问查询的方法:

module.exports = async function (srv) {

    srv.before("CREATE", "Requirements", req => {
        console.log("Request query", req._.req.query); // output: {}
    });
}

你对如何解决这个问题有什么建议吗?

编辑:

经过一番反复试验,我发现我尝试在后端访问查询的方式确实有效,但前提是您禁用了批处理请求。但是,我认为必须有另一种方法来获取查询,因为如果您运行cds watch命令并向服务发送带有查询的请求,它们会在控制台中记录:

[cds] - POST /report/$batch
[cds] - > CREATE Requirements { amount: '1' }

所以我只需要知道 CDS 框架如何访问查询,或者更确切地说,它如何或是否将它们传递给Handler Registration API

4

0 回答 0