GraphQL 查询/突变的响应

Posted

技术标签:

【中文标题】GraphQL 查询/突变的响应【英文标题】:Response of a GraphQL query/mutation 【发布时间】:2016-01-14 10:06:05 【问题描述】:

我有一个关于 在以下每种情况下应该是什么样子的问题:

    有结果,没有错误 出了点问题,一个或多个错误 既有结果又有一些错误

我不确定后者是否可能,但我似乎记得在某处读过它可能会发生。例如。在多个突变的情况下,假设有两个,其中每个突变都是按顺序处理的。如果第一个突变很好,我认为上面的案例 #3 可能会发生,但是在第二个突变的执行过程中会发生错误,但我不确定。

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

1:


  "data": 
    ...
  

2:


  "errors": [
    
      ...
    ,
    ...
  ]

3:


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

谢谢。

【问题讨论】:

【参考方案1】:

是的,您的示例回复在我看来是正确的。这是“案例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
        
      ]
    
  ]

【讨论】:

以上是关于GraphQL 查询/突变的响应的主要内容,如果未能解决你的问题,请参考以下文章

如何在突变时使用 urql 更新 graphql 缓存,其中初始查询响应不包括所需的 __typename?

GraphQL 突变为嵌套响应返回 null

使用 axios 将突变发布到 graphql

GraphQL - 突变响应后的自定义错误消息

Graphql 突变查询不适用于 express-graphql

在graphql中突变后查询