当前位置: 首页 > 知识库问答 >
问题:

如何避免在Apollo ServerV2错误响应中将错误集合包装在错误对象中

公西博实
2023-03-14

我们正在将Apollo Graphql Server v1项目迁移到V2。

我们注意到错误响应格式发生了变化。

我已经测试了Apollo GraphQL V2,这就是它的实现方式。

在v1中,这是预期的。

在v1中,我们看到如下错误响应,


{
  "errors": [
    {
      "message": "Field \"announcement\" must not have a selection since type \"String\" has no subfields.",
      "locations": [
        {
          "line": 2,
          "column": 16
        }
      ]
    }
  ]
}
{
  "error": {
    "errors": [
      {
        "message": "Field \"announcement\" must not have a selection since type \"String\" has no subfields.",
        "locations": [
          {
            "line": 2,
            "column": 16
          }
        ],
        "extensions": {
          "code": "GRAPHQL_VALIDATION_FAILED",
          "exception": {
            "stacktrace": [
             ...
            ]
          }
        }
      }
    ]
  }
}

共有1个答案

巫培
2023-03-14

此行为在版本2中没有改变。Apollo服务器生成符合规范的响应,并且不会在error对象中封装任何结果错误。相反,这只是GraphQL Playground中的一个已知bug。在2.0版本中,Apollo服务器从GraphiQL过渡到GraphiQL游乐场。GraphiQL没有同样的问题,这就是为什么在Apollo服务器上看起来像是一个bug。检查network选项卡并查看服务器的实际响应--它实际上是预期格式的。

 类似资料:
  • 我正在将oracle从10升级到12,对于这个特定的项目,我遇到了以下错误: 似乎它没有识别我在DataSource上添加的配置: 我们使用的是Java 8,我们对代码有这些依赖关系: 问题是它正在为另一个项目工作(与这个项目具有相同的结构,但由于某种原因它在这里不起作用) 是否有任何遗漏或我可以找到问题并解决问题的地方?

  • 当我尝试在页面对象中使用具有空格时,我得到: 我如何使用有空格的类名? 例如:

  • 问题内容: 我试图写一个近似平方根的函数(我知道有数学模块……我想自己做),但我被浮点运算搞砸了。如何避免这种情况? 使用它会产生以下结果: 我意识到我可以使用,但是我希望能够做到这一点非常准确。我希望能够计算出6或7位数字。如果我四舍五入,那将是不可能的。我想了解如何在Python中正确处理浮点计算。 问题答案: 这实际上与Python无关- 使用硬件的二进制浮点算法,您会在任何语言中看到相同的

  • 当方法调用的嵌套层级过深,导致栈空间耗尽时,会抛出StackOverflowError错误。 尝试复现问题,代码如下:

  • 问题内容: 我有此错误信息: 消息8134,级别16,状态1,第1行除以零错误。 编写SQL代码的最佳方法是什么,这样我就再也看不到此错误消息了? 我可以执行以下任一操作: 添加一个where子句,这样我的除数永远不会为零 或者 我可以添加一个case语句,以便对零进行特殊处理。 使用子句的最佳方法是吗? 有没有更好的方法,或者如何执行? 问题答案: 为了避免出现“被零除”错误,我们对此进行了如下

  • 问题内容: 此sql代码抛出一个 WHERE中不允许使用聚合函数 如何避免此错误? 问题答案: 用替换子句,如下所示: 与相似,两者均用于过滤结果记录,但用于过滤汇总数据(使用时)。