Это кажется базовым, поэтому я ожидал найти упомянутый сценарий, но я искал и не могу найти пример, который соответствует моему сценарию.У меня есть 2 конечные точки (я использую источники данных HTTP), которые я пытаюсь объединить.
Класс:
{
id: string,
students: [
<studentID1>,
<studentID2>,
...
]
}
и ученик:
{
id: String,
lastName: String
}
Мне нужна схема, которая выглядит следующим образом:
Student: {
id: ID!
lastName: String
}
Class: {
id: ID!,
studentDetails: [Student]
}
Из чтенияЯ знаю, что мне нужен какой-то распознаватель на Class.studentDetails, который будет возвращать массив / список студенческих объектов.Большинство примеров, которые я видел, показывают получение списка учеников на основе идентификатора класса (ctx.source.id), но в этом случае это не сработает.Мне нужно вызывать конечную точку ученика 1 раз для каждого учащегося, передавая идентификатор ученика (я не могу получить список учеников по идентификатору класса).
Есть ли способ написать решатель для зацикливания Class / studentDetailsчерез идентификаторы учеников в классе и называет ли я конечную точку моих учеников для каждого?
Я думал об этом в шаблоне сопоставления запросов:
#set($studentDetails = [])
#foreach($student in $ctx.source.students)
#util.qr(list.add(...invoke web service to get student details...))
#end
$studentDetails
Редактировать: Прочитав комментарий Лизы Шон ниже, я понял, что пакетный преобразователь для источников данных DynamoDB, который делает это,но я не вижу способа сделать это для источников данных HTTP.