1

我正在尝试在 aws 控制台中触发突变。我已将解析器函数链接到无类型数据源。但是,当我使用输入类型作为参数定义我的突变时,错误“错误无法为不可为空的类型返回 null:父 MyModelType 中的'String' (/createMyModelType/id)。” 发生。如果我用关键字参数替换输入类型,一切都很好。我确定这与我的解析器映射模板有关。如果您想知道我为什么使用 None 类型,我希望能够在不进行真正的数据库更改或突变的情况下触发订阅。我不确定如何使它与输入类型一起使用。这是我的模板代码:

{
    "version": "2017-02-28",
    "payload": $util.toJson($context.args)
}

我的架构:

input CreateMyModelType5Input {
    title: String
}


type Mutation {
    createMyModelType5(input: CreateMyModelType5Input!): MyModelType5
}

type MyModelType5 {
    id: ID!
    title: String
}


type Subscription {
    onCreateMyModelType5(id: ID, title: String): MyModelType5
        @aws_subscribe(mutations: ["createMyModelType5"])
}

查询我正在尝试运行

mutation createMyModelType($createmymodeltypeinput: CreateMyModelTypeInput!) {
  createMyModelType(input: $createmymodeltypeinput) {
    id
    title
  }
}

变异查询的查询变量

{
  "createmymodeltype5input": {
    "title": "Hello, world!"
  }
}
4

1 回答 1

0

所以我一直在努力在 graphql 突变中传递我的论点,并且使用输入类型似乎是唯一直接的方法。但是,我已经能够用这种方式做到这一点:

    mutation = """mutation CreateMyModelType($id: String!, $title: String!){
        createMyModelType(id: $id, title: $title){
            id
            title
        }
    }
    """
    
    input_params = {
        "id": "34",
        "title": "2009-04-12"
    }

    response = app_sync.createMyModelType(mutation, input_params)

这可能是一个很好的指南

于 2021-11-22T22:48:34.833 回答