До тех пор, пока authorId
возвращается из преобразователя getBook
, он будет доступен через $ctx.source.authorId
при разрешении Book.author
.
Я воспроизвел ваш API с локальными преобразователями, используя вашу схему:
Query.getBook
шаблон сопоставления запросов:
{
"version": "2018-05-29",
"payload": {
"title": "$context.arguments.title",
"authorId": "2" ## returned in addition to other fields. It will be used by Book.author resolver.
}
}
Query.getBook
шаблон сопоставления ответов:
$util.toJson($context.result)
Book.author
шаблон сопоставления запросов:
{
"version": "2018-05-29",
"payload": {
"name": "author name with authorId: $context.source.authorId"
}
}
Book.author
шаблон отображения ответа:
$util.toJson($context.result)
Следующий запрос:
query {
getBook(title:"AWS AppSync") {
title
author {
name
}
}
}
даст результаты:
{
"data": {
"getBook": {
"title": "AWS AppSync",
"author": {
"name": "author name with authorId: 2"
}
}
}
}