猿问

如何在 MarkLogic REST 函数中设置自定义 HTTP 代码

在 MarkLogic 9 中,我使用带有 POST 方法的自定义 SJS 服务,我在其中进行一些基本搜索和验证,为错误提供自定义结果(由于要求不使用 fn.error)。


我在 POSTMAN 中返回的错误是一个简单的 JSON,如下所示:


{

"code":400,

"message":"Bad request",

"reason":"string"

}

POSTMAN 中响应上方的 HTTP 代码消息标头显示“200 OK”,即使在使用xdmp.setResponseCode(400, "Bad request");


如何在遵循标准协议的同时将 HTTP 代码设置为手动编号/消息?


慕娘9325324
浏览 133回答 1
1回答

不负相思意

这取决于自定义 SJS 服务是否数据服务端点在 *.api 声明中设置 errorDetail 属性并抛出映射到 HTTP 状态代码的错误(参见 https://docs.marklogic.com/guide/java/DataServices#id_74238)。REST API 资源服务扩展对于 2xx 状态,请outputStatus在context参数对象上设置属性(请参阅 https://docs.marklogic.com/guide/rest-dev/extensions#id_26045)。对于 4xx 状态,抛出RESTAPI-SRVEXERR错误(参见 https://docs.marklogic.com/guide/rest-dev/extensions#id_20992)。一个 HTTP 端点模块调用xdmp.setResponseCode()函数(参见https://docs.marklogic.com/xdmp.setResponseCode)希望有帮助,
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答