【问题标题】:GraphQL mutation that accepts an multiple level of array of object in one request在一个请求中接受多级对象数组的 GraphQL 突变
【发布时间】:2019-11-04 19:29:16
【问题描述】:

我需要能够在单个请求中创建产品并添加它的 levelwithskills(包含级别名称和技能数组的对象数组)。

我有这个架构:

input LevelData {
    name: String!
    skills: [SkillsData]!
}

input SkillsData {
    name: String!
    price: Int
    duration: Int
    stepbystep: String
    teamchallange: String
}

type Mutation {
    createProduct(productInputData: ProductInputData): String
}

input ProductInputData {
    type: String!
    passion: String!
    course: String!
    levelwithskills: [LevelData]
    skills: [String]
    startdate: String!
    enddate: String!
}

我要发送的查询

createProduct(productInputData: {
    passion: "Tester"
    course: "Java and BDD"
    skills: ["HTML/CSS/JS"]
    levelwithskills: [{
      name: "Beginner"
      skills: [{
        name: "HTML/CSS/JS"
      }]
    },
    {
      name: "Intermediate"
      skills: [{
        name: "HTML/CSS/JS"
      }]
    }]
    startdate: "2019-06-20T11:00:09.459Z"
    enddate: "2019-06-20T11:30:09.459Z"
    type: "privatelesson"
  })

但是 Graphql 给了我一个错误,指出:

Validation error of type WrongType: argument 'productInputData.levelwithskills[0]' with value 'ObjectValue{objectFields=[ObjectField{name='type', value=StringValue{value='privatelesson'}}, ObjectField{name='course', value=StringValue{value='Java and BDD'}}, ObjectField{name='passion', value=StringValue{value='Tester'}}, ObjectField{name='levelwithskills', value=ArrayValue{values=[EnumValue{name='object'}, EnumValue{name='Object'}]}}, ObjectField{name='skills', value=ArrayValue{values=[StringValue{value='HTML/CSS/JS'}]}}, ObjectField{name='startdate', value=StringValue{value='2019-06-19T16:00:00.000Z'}}, ObjectField{name='enddate', value=StringValue{value='2019-06-19T16:45:00.000Z'}}' must be an object type @ 'createProduct'

【问题讨论】:

  • 您可以添加您要发送到服务器的查询吗?
  • 感谢回复,我已经更新了查询
  • 这很奇怪,错误消息说您发送的是枚举而不是levelwithskills 中的对象值,但您的查询看起来不错。或许可以直接向 AWS 支持人员提出这个问题。
  • 感谢您的建议,我将向 AWS 支持人员提出此问题

标签: graphql apollo aws-amplify aws-appsync express-graphql


【解决方案1】:

在您的架构中,您有一个名为createProduct 的突变字段,但您说您尝试发送的查询称为createProductPayment,所以我猜它正在占用您架构的不同部分。您可以与我们分享您的架构吗?

【讨论】:

    猜你喜欢
    • 2019-02-17
    • 2019-02-07
    • 2017-04-03
    • 2020-02-03
    • 2022-08-13
    • 2017-03-09
    • 2019-03-22
    • 2023-03-19
    • 2017-02-07
    相关资源
    最近更新 更多