如何将不属于实体的其他数据发送到后端例如,通过 URL 查询

问题描述

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

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

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 request handler,但找不到访问查询方法

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)