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!