Estoy tratando de hacer una inserción múltiple usando una API REST expuesta por Hasura (escrita en GraphQL). Esta es mi mutación:
mutation insertMultipleMeasurements2($payload: [measurements_insert_input!]!) { insert_measurements(objects: $payload) { returning { time } } }y esta es la definición de connections_insert_input en la pestaña Acciones:
input measurements_insert_input { device: String! value: numeric! variable: String! }(que, por cierto, es la única forma que encontré para insertar un objeto de tipo numérico en una inserción masiva).
Cuando trato de insertar algo como:
[ { "device": "TEST", "value": 5630, "variable": "Length" }, { "device": "TEST", "value": 5631, "variable": "Length" } ]Yo obtengo:
{ "path": "$", "error": "expecting a value for non-nullable variable: \"payload\"", "code": "validation-failed" }Probé muchas formas diferentes de reescribir mi mutación, pero parece que ninguna funcionó. Gracias por adelantado
Lo más probable es que haya olvidado envolver sus objects con variables , así:
yourMutation({ variables: { objects, on_conflict } })No es sencillo si confía en TS IntelliSense, mejor consulte el documento :)
Basado en el mensaje de error
"esperando un valor para la variable no anulable: "carga útil""
deberías pasar la matriz a través de un objeto
{ payload: [ { "device": "TEST", "value": 5630, "variable": "Length" }, { "device": "TEST", "value": 5631, "variable": "Length" } ] }