Я хотел бы вернуть тип ImageSet из мутации AddImageSet. Но мне кажется, что я не могу этого сделать, потому что каждое поле в моем типе ImageSet имеет свой собственный преобразователь, который перезаписывает шаблон сопоставления преобразователя.
Схема:
type ImageSet {
SetKey: ID
SetName: String
SetCreatedAt: AWSTimestamp
SetDescription: String
SetTags: [Tag]
}
type Mutation {
AddImageSet(setName: String!, setDescription: String): ImageSet
}
Вот мутация:
{
"version" : "2017-02-28",
"operation" : "PutItem",
"key" : {
"PartitionKey" : { "S" : "ImageSet" },
"SortKey" : { "S" : "ImageSet-$util.autoId()" }
},
"attributeValues" : {
"Name": { "S" : "${context.arguments.setName}" },
"Description": { "S" : "${context.arguments.setDescription}" },
"CreatedAt": { "N" : $util.time.nowEpochSeconds() },
}
}
и шаблон отображения ответов
{
"SetKey" : "$context.result.SortKey",
"SetName" : "$context.result.Name",
"SetCreatedAt" : $context.result.CreatedAt,
"SetDescription" : "$context.result.Description"
}
Когда я запускаю это, объект, возвращенный мутацией AddImageSet, имеет каждое поле, установленное как ноль, потому что преобразователи полей перезаписывают шаблон отображения ответа мутации AddImageSet.
Я решил эту проблему, создав дубликат типа 'ImageSetResult', без привязчиков к полю. Затем, если мутация AddImageSet возвращает это, все просто отлично. Но это кажется излишним.
Есть ли лучший способ сделать это?