Rest扩展API用于在marklogic中上传文件

时间:2016-02-14 04:38:06

标签: marklogic marklogic-8

我想创建一个自定义端点来上传文件,我可以使用通用的Rest API存根并使用POST方法来获取文件内容..我在文档中看到

  

在MarkLogic 8中,单语句事务中的POST方法以查询模式执行

这是什么意思?我可以做以下事吗,

declare function repo:post($context as map:map, $params  as map:map,$input   as document-node()*) as document-node()*
{
   let $filename := xdmp:get-request-field-filename("upload")
   let $contentType := xdmp:get-request-field-content-type("upload")
......
};

这将采取“multipart / form-data;” ??我有什么例子可以看吗?以上方式似乎对我不起作用

我也尝试过(并且喜欢注释)使用RXQ(https://github.com/xquery/rxq),但是对于multipart / form-data失败了。

关于如何接近的任何指示都会非常有用..

谢谢, 拉维

1 个答案:

答案 0 :(得分:3)

如果您只想编写单个文档,请考虑使用内置的REST端点:

http://docs.marklogic.com/REST/PUT/v1/documents

如果要在编写文档的同时执行某些自定义逻辑,一种简单的方法是指定执行副作用操作的转换,并简单地传递文档:

http://docs.marklogic.com/guide/rest-dev/transforms

如果您的自定义逻辑必须处理写入,请考虑使用PUT方法:

http://docs.marklogic.com/REST/PUT/v1/resources/%5Bname%5D

编写单个文档时,指定标识文档格式的mime类型。在编写一批文档时,您应该将批处理打包为多部分/混合有效负载,其中每个部分都指定文档格式的mime类型。

使用REST扩展时,您无需与HTTP交互。 REST API为您执行此操作,获取文档并将其传递给您的函数。您只需编写具有预期签名的函数:

http://docs.marklogic.com/guide/rest-dev/extensions#id_75991

使用以下函数安装库模块:

http://docs.marklogic.com/guide/rest-dev/extensions#id_59112

希望有帮助,