javascript - 如何在 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 代码设置为手动编号/消息?
解决方案
要看自定义的SJS服务是否
数据服务端点
在 *.api 声明中设置 errorDetail 属性并抛出映射到 HTTP 状态代码的错误(请参阅 https://docs.marklogic.com/guide/java/DataServices#id_74238)。
REST API 资源服务扩展
对于 2xx 状态,请在参数对象 上设置
outputStatus
属性(请参阅https://docs.marklogic.com/guide/rest-dev/extensions#id_26045)。context
对于 4xx 状态,抛出
RESTAPI-SRVEXERR
错误(请参阅 https://docs.marklogic.com/guide/rest-dev/extensions#id_20992)。HTTP 端点模块
调用
xdmp.setResponseCode()
函数(参见https://docs.marklogic.com/xdmp.setResponseCode)
希望有帮助,
推荐阅读
- r - 根据 R 中的两个因子水平插入行
- java - 我想在谷歌地图中显示交通并用同一个按钮隐藏它
- java - 获取从查询返回的对象值
- haskell - Haskell:找不到模块“Data.List.Split”
- javascript - 从 JavaScript 中更改 OnMouseOut 事件只能暂时有效
- reactjs - 将使用 create-react-library 创建的单个反应组件嵌入到 html 页面中
- dialog - 中间的材质对话框
- php - 将最大数据大小从 php 增加到 shell_exec
- python - 类实例中的随机值,未保存
- python - Python:为什么每个项目都重复这个循环?