Marklogic 9.0-3 REST 扩展中的 REST 参数访问
Marklogic 9.0-3 REST Parameters accessing in REST extensions
我有一个 REST 扩展,我一直在访问已通过 GET 和 POST 传递的参数,如下所示。参数作为 form-data
或 [=12= 传递].在我的 REST 扩展中,我将通过 xdmp:get-request-field("remoteURL")
.
访问参数
在 ML-8 中,这在调用 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) }
};
记录的方法一直是对用户定义的参数使用 rs: 前缀。
如果向扩展程序提供了没有前缀的参数,那是意外的。
希望澄清,
我不知道这方面有什么变化,尽管这很有可能发生。我建议通过 $params map:map 访问参数,无论如何这是 REST 扩展的推荐方式。 $params 将始终包含任何没有 rs: 前缀的 rs: 请求参数。
HTH!
我有一个 REST 扩展,我一直在访问已通过 GET 和 POST 传递的参数,如下所示。参数作为 form-data
或 [=12= 传递].在我的 REST 扩展中,我将通过 xdmp:get-request-field("remoteURL")
.
在 ML-8 中,这在调用 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) }
};
记录的方法一直是对用户定义的参数使用 rs: 前缀。
如果向扩展程序提供了没有前缀的参数,那是意外的。
希望澄清,
我不知道这方面有什么变化,尽管这很有可能发生。我建议通过 $params map:map 访问参数,无论如何这是 REST 扩展的推荐方式。 $params 将始终包含任何没有 rs: 前缀的 rs: 请求参数。
HTH!