当前位置: 首页 > 知识库问答 >
问题:

通过AWS AppSync中的突变更新GraphQL数据时出错

缪坚诚
2023-03-14

我已经成功地使用突变创建了数据,但当我更新该数据时,我收到了这个错误

变量“输入”已强制非Null类型“Int!

下面是我的查询模式

type SmoothstarRegisteration @model @versioned {
  id: ID!

  active: Boolean!

  type: String!
  registerationSubmitDate: String
  registerationApprovedDate: String
  userId: String!
  videoInfoReviewed: Boolean!

  registerationAttempts: Int!
  registerationStatus: String

  orderNum: String
  orderInfo: OrderInfo @connection(name: "SmoothstarRegisterationOrder")

  address: String
  postCode: String
  region: String
  dateOfBirth: String
  smoothstarModel: String
  purchaseDate: String
  shopName: String
  ocrInfo: OCRInfo @connection(name: "SmoothstarRegisterationOCR")

  privacyPolicyReviewed: Boolean!
  extendedPolicyReviewed: Boolean!
  termsOfUseReviewed: Boolean!

  files: [RegisterationMedia!] @connection(name: "SmoothstarRegisterationMedia")
}

这是更新查询

mutation UpdateSmoothstarRegisteration(
  $input: UpdateSmoothstarRegisterationInput!
) {
  updateSmoothstarRegisteration(input: $input) {
    id
    active
    type
    registerationSubmitDate
    registerationApprovedDate
    userId
    videoInfoReviewed
    registerationAttempts
    registerationStatus
    orderNum
    orderInfo {
      id
      active
      type
      orderNum
    }
    address
    postCode
    region
    dateOfBirth
    smoothstarModel
    purchaseDate
    shopName
    ocrInfo {
      id
      active
      type
      customerId
      customerEmail
      customerPhone
      orderNum
      address
    }
    privacyPolicyReviewed
    extendedPolicyReviewed
    termsOfUseReviewed
    files {
      items {
        id
        version
      }
      nextToken
    }
    version
  }
}

下面是调用API的代码。

return API.graphql(graphqlOperation(operation, data))
    .then(response => {
      console.log(`API (${name}) Response => `, response);
      return response;
    })
    .catch(error => {
      throw error;
    });

操作中,我将更新查询发送到我放置数据的位置

{ input: {
    active: true
    extendedPolicyReviewed: true
    id: "9dfc480f-7bed-42ed-a585-820f5e8c1485"
    orderNum: "ABCD1234xyz"
    privacyPolicyReviewed: true
    registerationAttempts: 2
    registerationStatus: "registered"
    registerationSubmitDate: "2019-03-31"
    smoothstarRegisterationOrderInfoId: "03b6967d-4b86-4c2d-9115-fb7a40a9c474"
    termsOfUseReviewed: true
    type: "W"
    userId: "m.daniyal.awan@gmail.com"
    videoInfoReviewed: true 
}}

共有1个答案

傅毅然
2023-03-14

我已经解决了问题,输入中缺少< code>expectedVersion属性。刚刚添加了< code>expectedVersion: 1,可以开始了。该数字必须与当前数据中的版本条目完全一致,每次调用update时都必须递增。

 类似资料:
  • 所以我不知道这是否真的描述了我的问题,但这是我能得到的最接近的吗? 我正在使用AWSAppsyncClient进行一些GraphQL突变。由于模型的性质,在更大程度上,由于我缺乏经验,我需要创建一个记录,然后创建两个依赖于第一个的记录,然后才能将它们链接到数据库中。 目前,我正在进行第一次变异,它返回所创建记录的ID。然后在查询返回的promise中创建中间记录。它基本上看起来像: 问题是Prom

  • 我试图让我的elm(v:0.18)客户机通过GraphQL与我的后端对话。我现在试图避免elm-graphql库和基本的elm HttpBuilder模块。 login命令如下所示:

  • 我在GraphQL中遇到了一些困难,其中模式中的类型包括嵌套类型。所以假设我有一个预订的数据类型: 在模式文件中,我还有一个如下所示的根变异: 我可以在 GraphiQL 中编写一个突变来为预订创建数据,没问题: 到目前为止一切都很好。现在,我需要向原始预订对象添加一个嵌套类型来记录分配给预订的工作人员。因此,我为工作人员添加了类型(输入和输出类型),并将这些类型添加到预订类型和突变中: 预订类型

  • 我是GraphQL的新手。我已经有了一个添加数据的模式和变异,但是我有点纠结于如何进行更新变异来更新数据库中的现有数据。 我想我知道我可能需要做些什么来实现这一点,但我会感谢一些关于我的想法是否是正确的方法的指示。 这是我的模式,其中包含我的突变GraphQLObject。 我是否正确地说,在解析函数中,我需要首先通过id在数据库中找到相关对象,然后返回任何arg已更新/更改的args?我不知道如

  • 我想通过Google Sheets API更新我的Google工作表数据。它看起来像连接到谷歌的服务器和发送请求成功。但是我的谷歌表格数据没有更新。回答是:result.updated细胞是未定义的。我哪里做错了? 范围的响应值是正常的,但另一个的响应是未定义的,尽管服务器已收到我的请求。我的谷歌表仍然没有更新。

  • 我想更新我的变量,但我的代码有一个错误,我不知道哪里有错误