GraphQL查询/变异的响应

时间:2015-10-15 19:43:51

标签: graphql relayjs

我有一个问题,想一想在以下每种情况下GraphQL查询/变异的响应应该是什么样的:

  1. 结果,没有错误
  2. 出现问题,一个或多个错误
  3. 有结果和一些错误
  4. 我不确定后者是否可能,但我似乎记得在某处读到它可能会发生。例如。在多个突变的情况下,假设两个,其中每个突变被顺序处理。我认为如果第一个突变很好,可能会发生上面的情况#3,但是在执行第二个突变期间会发生错误,但我不确定。

    无论如何,回应应该如何?像下面那些? (JSON中的示例,其中每个都与之前的案例相对应。)或者还有其他方式更惯用吗?也许Relay提供了一些关于它应该如何的指导方针?我找不到任何好的资源。

    1:

    {
      "data": {
        ...
      }
    }
    

    2:

    {
      "errors": [
        {
          ...
        },
        ...
      ]
    }
    

    3:

    {
      "data": {
        ...
      },
      "errors": [
        {
          ...
        },
        ...
      ]
    }
    

    感谢。

1 个答案:

答案 0 :(得分:2)

是的,您的样本回复对我来说是正确的。以下是“案例3”的更详细示例。

在其中一个字段

中出现错误的示例查询
query MyQuery {
  viewer {
    articles(first: 1) {
      edges {
        node {
          title
          tags # we'll introduce an error in the schema here
        }
      }
    }
  }
}

样本回复

{
  "data": {
    "viewer": {
      "articles": {
        "edges": [
          {
            "node": {
              "title": "Sample article title",
              "tags": null
            }
          }
        ]
      }
    }
  },
  "errors": [
    {
      "message": "Cannot read property 'bar' of undefined",
      "locations": [
        {
          "line": 7,
          "column": 11
        }
      ]
    }
  ]
}