You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Apollo Server执行GraphQL多查询的错误返回行为疑问

Apollo Server 多查询操作的错误返回问题

我们在使用基于Apollo Server的GraphQL服务时,尝试在单个查询操作中同时执行多个查询,期望两个查询都能执行并返回各自结果。示例查询如下:

query Operation1 {
 getPosts {
   id
   title
   url
 }
 getBooks {
   id
   title   
 }
}

注:原示例中查询字段的写法存在语法错误,已修正为符合GraphQL规范的格式(移除了字段名后多余的冒号与大括号)

成功执行时的返回结果

当两个查询均成功时,能获取到正常的返回结果:

{
  "data": {
    "getPosts": [{
      "id": "P1",
      "title": "post1",
      "url": "/blog/post1"
    }],
    "getBooks": [{
      "id": "B1",
      "title": "book1"
    }]    
  } 
}

单个查询失败时的实际返回

但如果其中任意一个查询失败,返回结果仅包含错误信息,成功的查询结果不会出现在data字段中:

{
  "data": {},
  "errors": [
    {
      "message": "failure message",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "getBooks"
      ],
      "extensions": {
        "code": "INTERNAL_SERVER_ERROR"
      }
    }
  ]
}

预期的返回格式

我原本期望单个查询失败时,成功的查询结果依然保留在data中,失败的字段下包含对应的错误信息,格式如下:

{
  "data": {
    "getPosts": [
      {
        "id": "P1",
        "title": "post1",
        "url": "/blog/post1"
      }
    ],
    "getBooks": {
      "data": {},
      "errors": [
        {
          "message": "failure message",
          "locations": [
            {
              "line": 2,
              "column": 3
            }
          ],
          "path": [
            "getBooks"
          ],
          "extensions": {
            "code": "INTERNAL_SERVER_ERROR"
          }
        }
      ]
    }
  }
}

想确认这种实际返回是否属于Apollo Server的预期行为?

内容的提问来源于stack exchange,提问作者HDB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 19:50:23