我有一个REST扩展,我访问已经传递的参数,包括GET和POST,如下所示。参数以form-data或x-www-form-urlencoded的形式传递。在我的REST扩展中,我将通过xdmp:get-request-field("remoteURL")访问参数。
在ML-8中,当调用WS时,当调用WS时,我会以remoteURL的形式传入参数,这样做是可行的。
现在,在ML-9.0-3中,它不起作用,所以我尝试通过rs:remoteURL传递参数,在REST扩展中以xdmp:get-request-field("remoteURL")的形式访问,结果失败,但是当我以xdmp:get-request-field("rs:remoteURL")的形式访问时。起作用了..。这在ML-9.0-3中被改变了吗?
为了完整起见,我还包括了我的REST扩展代码
declare function repoTest:post($context as map:map, $params as map:map,$input as document-node()*) as document-node()*
{
let $_ := xdmp:log("Inside the Repo Test POST")
let $remoteURL :=xdmp:get-request-field("remoteURL")
let $_ := xdmp:log($remoteURL)
let $output := json:object()
let $_ := map:put($output, "remoteURL", $remoteURL)
return document { xdmp:to-json($output) }
};发布于 2017-11-14 20:02:29
我不知道这方面会有任何改变,虽然这是很有可能的。我建议通过$params map:map访问参数,这是REST扩展的推荐方法。$params将始终包含没有rs:前缀的任何rs: request参数。
哈哈!
发布于 2017-11-14 20:01:01
文档化的方法一直是对用户定义的参数使用rs:前缀。
如果没有前缀的参数被提供给扩展,这是意外的。
希望这能澄清,
https://stackoverflow.com/questions/47293657
复制相似问题