MarkLogic文档提供了成功响应的信息,但没有关于删除失败的信息。
https://docs.marklogic.com/REST/DELETE/v1/documents
如果文档不存在,我期望404,如果已经删除,则期望410;如果我没有删除文档的授权,则期望403。
根据我的有限测试,如果文档不存在,我似乎得到204,如果我没有被授权,则得到400。
一些REST实践者断言DELETE请求应该是幂等的。只要操作完成后文档不存在,操作就成功了。
也就是说,最新版本的REST API允许对文档删除请求进行检查。如果check设置为“exists”,则如果文档不存在,操作应该抛出错误。
顺便说一下,鉴于服务器上没有运行状态,我不知道如何区分404和410情况。
希望有所帮助,
您可以采用API优先方法并直接在MarkLogic上构建自己的优秀REST API,您可以使用XQRS完全控制URI路径以及响应代码和其他任何内容。
declare
%rest:DELETE
%rest:path("/db/{$uri=.*}")
%xdmp:update
function delete-doc($uri as xs:string) {
if(fn:doc-available($uri)) then (
xdmp:document-delete($uri),
<rest:response>
<http:response status="410" message="Gone"/>
</rest:response>
)
else (
<rest:response>
<http:response status="404" message="Not Found"/>
</rest:response>
)
};