Marklogic 9.0-3 Доступ к параметрам REST в расширениях REST

У меня есть расширение REST, и я получаю доступ к параметрам, которые были переданы, как в GET, так и в POST, как показано ниже. Параметры передаются как form-data или x-www-form-urlencoded. В моем расширении 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) }
};

person Ravi    schedule 14.11.2017    source источник


Ответы (2)


Я не знаю об изменении в этом, хотя это вполне возможно. Я бы рекомендовал получать доступ к параметрам через карту $ params: map, что в любом случае рекомендуется для расширений REST. $ params всегда будет содержать любые параметры rs: request без префикса rs :.

HTH!

person grtjn    schedule 14.11.2017
comment
Могу ли я использовать параметры карты для получения двоичного содержимого, имени файла и т. Д. - person Ravi; 14.11.2017
comment
Я никогда не пытался быть честным. Я подозреваю, что в настоящее время нет. По крайней мере, с данными формы. Я думаю, что он должен уметь обрабатывать multipart / mixed. - person grtjn; 15.11.2017

Документированный подход всегда заключался в использовании префикса rs: для определяемых пользователем параметров.

Если расширению были предоставлены параметры без префикса, это было неожиданно.

Надеясь, что это проясняет,

person ehennum    schedule 14.11.2017