graphql - 在 graphQL 中提交一个对象数组作为查询变量

标签 graphql graphql-js

当其中一个字段是对象数组时,如何将查询参数构造为 graphQL 突变?当我对突变进行硬编码时,这是有效的并且有效:

mutation{
  submitResponse(user: "1234", responses: [{ answerId: "wmtBCWtkSeDs5meBe", selected: false}, { answerId: "wmtBCWtkSeDs5meBz", selected: true}]) {
    id
  }
}

我这辈子都想不出如何为对象的响应数组传递查询参数。如何定义对象中每个字段的类型。这就是它想要的用户 ID 并且工作正常但我无法弄清楚它的响应部分。

mutation submitResponse($user: ID!){
  submitResponse(user: $user, responses: [{ answerId: "wmtBCWtkSeDs5meBe", selected: false}, { answerId: "wmtBCWtkSeDs5meBz", selected: true}]) {
    id
  }
}

谢谢!

最佳答案

我知道这个问题很老,但也许其他人需要简单的解决方案。

  1. 设置responses类型为String!

    mutation submitResponse($user: ID!, $responses: String!){
      submitResponse(user: $user, responses: $responses) {
        id
      }
    }
    
  2. 然后:

    yourData = [{ answerId: "wmtBCWtkSeDs5meBe", selected: false}, { answerId: "wmtBCWtkSeDs5meBz", selected: true}]
    responses = JSON.stringify(yourData)
    
  3. 在我的 BackEnd 案例中,我使用 Python,因此在 BackEnd 中接收 responses,然后简单地将 JSON(字符串)转换为 Python 的字典,例如:

    import json
    responses = json.loads(input.get('responses'))
    

关于graphql - 在 graphQL 中提交一个对象数组作为查询变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45910230/

相关文章:

graphql - aws-amplify-react Connect 首先返回未定义的数据

graphql - GraphQL 查询中的多项查找

javascript - GraphQL 嵌套查询定义

javascript - GraphQL:不可为空的数组/列表

javascript - 使用Facebook的DataLoader传递参数

reactjs - React Apollo GraphQL 搜索/过滤

javascript - 如何使用node.js GOT http请求库进行故障排除?

javascript - 如何从字符串中获取qql表达式

node.js - NodeJs GraphQL 枚举类型值作为动态