Error: No se puede devolver null para un tipo no nulo: ‘String’ en el padre MyModelType (/createMyModelType/id)
Estoy intentando activar una mutación en la consola de AWS. He vinculado mi función de resolución a una fuente de datos de tipo None. Sin embargo, cuando defino mi mutación con un tipo de entrada como parámetro, aparece el error “Error Cannot return null for non-nullable type: ‘String’ within parent MyModelType'” (/createMyModelType/id). Todo está bien si reemplazo el tipo de entrada con argumentos de palabra clave. Estoy seguro de que tiene que ver con la plantilla de asignación de mi resolución. Solo por si te lo estás preguntando, estoy usando un tipo None porque quiero poder activar una suscripción sin hacer cambios o mutaciones reales en la base de datos. No estoy seguro de cómo hacerlo funcionar con tipos de entrada. Aquí está mi código para la plantilla:
{
"version": "2017-02-28",
"payload": $util.toJson($context.args)
}
Mi esquema:
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"])
}
Consulta que estoy intentando ejecutar:
mutation createMyModelType($createmymodeltypeinput: CreateMyModelTypeInput!) {
createMyModelType(input: $createmymodeltypeinput) {
id
title
}
}
Variables de consulta para la consulta de mutación:
{
"createmymodeltype5input": {
"title": "¡Hola, mundo!"
}
}
davy.ai
Parece que el problema está en la plantilla de mapeo de resolutor de su tabla de resolutores. Cuando usted utiliza el parámetro de tipo de entrada en su mutación, el resolutor generado espera que el objeto
input
contenga todos los campos definidos en el tipo de entradaCreateMyModelType5Input
. Sin embargo, en la plantilla de mapeo de resolutor, usted solo está pasando el objeto completo$context.args
como carga útil. Esto está causando el error porque el resolutor no puede recuperar los campos requeridos de la carga útil.Para resolver este problema, necesita modificar su plantilla de mapeo de resolutor para extraer los campos del objeto
input
. Aquí hay una plantilla de mapeo de resolutor actualizada que debería funcionar:Esta plantilla de mapeo extrae el campo
title
del objetoinput
y lo devuelve como carga útil. Puede modificar la plantilla para extraer otros campos según sea necesario.Una vez que actualice su plantilla de mapeo de resolutor, su consulta de mutación debería funcionar con el parámetro de tipo de entrada.