【问题标题】:Insert more than one record using GraphQL Mutation使用 GraphQL Mutation 插入多条记录
【发布时间】:2020-10-06 11:21:54
【问题描述】:

我想使用 GraphQL Mutation 插入多个记录,但它给出了错误。这是我用来执行此操作的代码。

input BusinessImageInput {
  business_id: Int
  image_url: String
}

mutation MyMutation($images: [BusinessImageInput!]) {
  insert_business_images(objects: [$images]) {
    affected_rows
  }
}

这是我想作为参数传递的变量。

{"images":  [
    {
    "business_id": 15,
    "image_url": "https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTVzlb1cEw8E0LeLJzk9c0OQV-N387Nt2Kn5w&usqp=CAU"
    },
    {
       "business_id": 15,
       "image_url": "https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTVzlb1cEw8E0LeLJzk9c0OQV-N387Nt2Kn5w&usqp=CAU"
    }
  ]
}

这是错误

{
  "errors": [
    {
      "extensions": {
        "path": "$.query",
        "code": "bad-request"
      },
      "message": "not a valid GraphQL query"
    }
  ]
}

请帮帮我。

【问题讨论】:

    标签: graphql


    【解决方案1】:

    您的代码中有一个明显的问题。这一行

    insert_business_images(objects: [$images]) {
    

    应该是

    insert_business_images(objects: $images) {
    

    注意删除的方括号。

    如果这没有帮助,那么我们需要更多信息,例如:

    • 您遇到了什么错误?
    • 您在客户端和服务器端都使用哪种 GraphQL 实现?
    • GraphQL 代码(可能还有解析器)在服务器上是什么样的?您只给了我们等式的客户端。

    【讨论】:

    • 我正在使用 graphQL API Explorer。在问题详细信息中附加错误详细信息。
    【解决方案2】:

    就这么简单

    mutation MyMutation($images: [BusinessImageInput!]) {
      insert_business_images(images: $images) {
    

    mutation MyMutation($objects: [BusinessImageInput!]) {
      insert_business_images(objects: $objects) {
    

    取决于服务器insert_business_images突变定义,参数的名称(imagesobjects?) - 使用资源管理器...和[如上所示]通常输入arg和变量同名,只有$前缀不同。

    https://graphql.org/learn/queries/#variables

    另外您必须遵循服务器输入类型

    【讨论】:

      猜你喜欢
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      • 2015-09-25
      • 2016-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-31
      相关资源
      最近更新 更多