我想通过 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。