错误无法为不可为空的类型返回 null:父 MyModelType 中的“字符串”(/createMyModelType/id)
Posted
技术标签:
【中文标题】错误无法为不可为空的类型返回 null:父 MyModelType 中的“字符串”(/createMyModelType/id)【英文标题】:Error Cannot return null for non-nullable type: 'String' within parent MyModelType' (/createMyModelType/id) 【发布时间】:2021-12-31 17:38:20 【问题描述】:我正在尝试在 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!"
【问题讨论】:
您介意编辑您的问题以添加您如何称呼createMyModelType
吗?
【参考方案1】:
所以我一直致力于在 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)
this can be a good guide
【讨论】:
以上是关于错误无法为不可为空的类型返回 null:父 MyModelType 中的“字符串”(/createMyModelType/id)的主要内容,如果未能解决你的问题,请参考以下文章
错误:主体可能正常完成,导致返回“null”,但返回类型是不可为空的类型
无法为不可为空的字段返回 null,调试器不显示 null [重复]
GraphQL 查询返回错误“不能为不可为空的字段返回 null”