【发布时间】:2021-06-09 15:45:04
【问题描述】:
我有一个用 JavaScript 编写的自定义 REST 端点。在 JavaScript 扩展中,POST 操作以查询模式运行,因此它们无法更新数据,因此我需要使用 xdmp.eval 启动一个新事务,这意味着我需要对 xdmp.eval 的执行权限。 如何将 amp 应用到 JavaScript 扩展?
我正在通过 DHF 5 部署端点,因此它位于 src/main/ml-modules/services/my-endpoint.sjs。部署后,在模块数据库中,/marklogic.rest.resource/my-endpoint/assets/resource.sjs 已创建,还有resource.xqy 和metadata.xml。我实际上尝试创建三个放大器,每个文件一个,但它似乎没有授予必要的xdmp.eval 权限。我不断收到错误消息:
SEC-PRIV: xdmp.eval(...) -- Need privilege: http://marklogic.com/xdmp/privileges/xdmp-eval
作为一种解决方法,我想我可以为对xdmp.eval 的调用编写一个包装器,并在其上创建一个放大器。我只是想知道是否可以直接放大端点。
【问题讨论】:
-
您说您尝试为这三个文档中的每一个创建 AMP,但您 AMP 是一个函数,而不是文档。您是否尝试过 AMPing REST 资源模块的 post() 函数?
-
嗯,其实我已经忘记了,所以谢谢。我想我发现了问题,这是其中的一部分,但不是全部。
-
发布一个演示修复的答案(并接受您的答案)
标签: marklogic