Я пытаюсь передать ниже полезную нагрузку (вложенный массив объектов), используя aws -amplify :
{
"data": [
{ "name": "alpha", "description": "lorem" },
{ "name": "bravo", "description": "ipsum" },
]
}
Это решение (исходный код - TypeScript):
import AWSAmplifyAPI, { graphqlOperation } from "@aws-amplify/api";
const rawGraphQLRequest: string = `
mutation ($data: [registerMultipleItemsInput]!) {
registerMultipleItems(data: [$data])
}`;
type Item = {
name: string;
description: string;
}
async function registerMultipleItems(items: Array<Item>): Promise<void> {
await AWSAmplifyAPI.graphql(graphqlOperation(rawGraphQLRequest, { data: items }));
}
вызывает неясную ошибку:
Validation error of type VariableTypeMismatch: Variable type '[registerMultipleItemsInput]!' doesn't match expected
type 'registerMultipleItemsInput' @ 'registerMultipleItems'";
Бэкэнд, схема определяется как:
registerMultipleItems(data: [registerMultipleItemsInput]!): [String]!
@aws_cognito_user_pools
input registerMultipleItemsInput{
name: String!
description: String!
}
Я пытался добавить определение registerMultipleItemsInput
к rawGraphQLRequest
:
const rawGraphQLRequest: string = `
input registerMultipleItemsInput {
name: String!
description: String!
}
mutation ($data: [registerMultipleItemsInput]!) {
registerMultipleItems(data: [$data])
}`;
Выше вышла ошибка и произошла дополнительная ошибка:
Validation error of type NonExecutableDefinition: The registerMultipleItemsInput definition is not executable.
Какой правильный синтаксис для { "data": <Array>
} полезной нагрузки?
PS Надеюсь, мне не нужно определить registerMultipleItemsInput
в rawGraphQLRequest
, потому что registerMultipleItemsInput
уже был определен в бэкэнде, и определение его снова в веб-интерфейсе является своего рода жестким кодированием.