0

我有一个 REST 扩展,并且我一直在访问已在 GET 和 POST 中传递的参数,如下所示。参数作为form-data或传递x-www-form-urlencoded。在我的 REST 扩展中,我将通过xdmp:get-request-field("remoteURL").

在 ML-8 中,这在调用 WS 时有效,我将传递参数作为remoteURL并且它有效..

现在在 ML-9.0-3 中,它不起作用,所以我尝试通过rs:remoteURLREST 扩展中的 asxdmp:get-request-field("remoteURL")和访问传递参数,但它失败了,但是当我访问 as 时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) }
};
4

2 回答 2

1

记录的方法一直是使用 rs: 前缀作为用户定义的参数。

如果没有前缀的参数被提供给扩展,那是出乎意料的。

希望澄清,

于 2017-11-14T20:01:01.560 回答
0

我不知道这有什么变化,尽管很有可能。我建议通过 $params map:map 访问参数,无论如何这是 REST 扩展的推荐方式。$params 将始终包含任何不带 rs: 前缀的 rs: 请求参数。

于 2017-11-14T20:02:29.760 回答