没有rs的MarkLogic 9资源扩展API无法使用:名称空间前缀

时间:2019-08-07 19:27:37

标签: rest xquery marklogic marklogic-8 marklogic-9

API:host:port?v1 / rsources / content?id = 1 上面的API适用于ML 8

当我们尝试在代码中获取ID时,在ML 9中没有任何值

declare 
%roxy:params("")
function ext:get(
  $context as map:map,
  $params  as map:map
) as document-node()*
{
  let $params := rest:get-raw-query-params () + $params
let $id := map:get($params,"id")

API:host:port?v1 / rsources / content?rs:id = 1

但是,如果我们包含rs,它将在ML 9上运行:

我们所有的应用程序和服务都是在没有rs的情况下构建的:prefex 这很关键,并且有任何方法可以解决,这是ML 9

2 个答案:

答案 0 :(得分:2)

这里令人惊讶的部分是它曾经起作用过-自从MarkLogic 6中引入REST API以来,就一直需要rs:前缀。您是否有可能在添加rs:前缀的同时有应用程序层或自定义重写器使用MarkLogic 8?

这里的解决方案是按照文档要求包含前缀。

答案 1 :(得分:0)

我怀疑某些事情确实发生了变化,并且原始查询参数不再传递。很难解决这个问题。与Dave一样,我建议根据文档使用前缀,或添加自动为您执行此操作的代理或层。

HTH!