spring-boot - 在发生异常时使用服务抛出的不同代码覆盖 GraphQL 默认状态代码(200)
问题描述
我在 SpringBoot 之上构建了一个微服务,并且我将 GraphQL 用于微服务。默认情况下,GraphQL 发送 200 状态代码,即使它的错误和错误详细信息作为响应的错误部分的一部分出现。
但是我想在事务不成功并被服务抛出异常时发送不同的状态码。
我怎样才能做到这一点?有人可以帮我吗?
我当前的自定义异常类是 GraphQLError 类型。
提前致谢
解决方案
根据 GraphQL标准,任何错误都应该在error
块中返回,所以你应该返回状态码,错误块中的消息
响应中的错误条目是一个非空错误列表,其中每个错误都是一个映射。
如果在请求的操作期间没有遇到错误,则错误条目不应出现在结果中。
如果响应中的数据条目不存在,则响应中的错误条目不能为空。它必须包含至少一个错误。它包含的错误应该表明为什么无法返回数据。
如果响应中的数据条目存在(包括它是否为 null 值),则响应中的错误条目可能包含执行期间发生的任何错误。如果在执行过程中发生错误,它应该包含这些错误。
{
"errors": [
{
"message": "error message",
"path": "/api/call",
"status_code": 500
}
],
"data": null
}
推荐阅读
- react-native - React Native:带有 flex 的 ScrollView 和布局元素
- angular - 我可以在 mat-select 中发出不同的值吗?
- postgresql - 容器化数据库文件路径和根目录未知
- asp.net-core - 运行时基于对象属性值的动态 XML 元素名称
- c++ - 如何在 char* 中添加 char*?
- r - 如何合并两个数据集一列将在两列之间?
- airflow - 在 apache 气流 2.0 中可以避免这个警告吗?
- reporting-services - SSRS - 在文本框中连接多个参数值
- windows - 什么可能会使系统挂起到鼠标和键盘无响应的地步
- python - Discord.py ban all members