使用MarkLogic REST API将文件系统设置为模块数据库

3
我希望使用MarkLogic 8的REST API创建一个应用服务器,该服务器使用文件系统作为模块数据库,如下图所示:

Modules database using file system

我尝试了以下变化,每个命令下面都描述了结果:

curl -v -X POST --anyauth -u admin:admin --header "Content-Type:application/json" \
-d '{"rest-api": { "name": "MyAppServer", "port": "8012", "database": "MyDB", "modules-database": 0 } }' \
http://127.0.0.1:8002/v1/rest-apis

创建名为“0”(不带引号)的数据库

curl -v -X POST --anyauth -u admin:admin --header "Content-Type:application/json" \
-d '{"rest-api": { "name": "MyAppServer", "port": "8012", "database": "MyDB", "modules-database": "(file system) } }' \
http://127.0.0.1:8002/v1/rest-apis

错误

ADMIN-INVALIDCONFIG: (err:FOER0000) 无效配置:'(文件系统)'不是有效的数据库名称

如果无法使用REST API设置模块数据库,是否可以使用REST API将文件加载到模块数据库中?我只找到有关将文档插入数据数据库的文档。


不100%确定,但我认为在模块数据库中插入文档应该没有问题,假设您设置了适当的权限和其他设置。 - Mike Gardner
2
将文档添加到模块数据库与添加到其他任何数据库没有区别(使用文档API发布文档或MLCP等)。但是,您必须确保为使用应用程序的用户包括适当的权限(读取和执行)。 - David Ennis -CleverLlamas.com
1
如果您愿意使用Gradle作为构建自动化工具,https://github.com/rjrudin/ml-gradle 可以自动化使用MarkLogic Management REST API的类似任务。 - rjrudin
1个回答

4

不支持将模块数据库配置到文件系统中,适用于REST API应用服务器。

REST API需要能够在模块数据库中读写文档。

通过将其视为内容数据库,REST客户端可以在模块数据库中读写文档以供REST API应用服务器使用。方法如下:

  • 创建一个具有模块数据库作为内容数据库的不同REST API应用服务器。(可以将其视为“元”REST API应用服务器。)
  • 连接到REST API应用服务器时指定数据库参数。

只需注意不要在由REST API管理的模块数据库目录中写入文件:

/GROUP_NAME/
/marklogic.rest.*/
/ext/

希望这能帮到您,

我选择了“元”应用程序方法,因为我不想在我的应用程序上启用全局REST API - 谢谢! - Stuart Leyland-Cole

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接