Конвейер AppSync Resolver - объединение нескольких выходов

У меня есть преобразователь конвейера, который получает данные из двух источников данных, использующих одну и ту же схему.

Допустим, они оба возвращают список из 10 элементов (всего 20). Как я могу объединить оба выхода в один список и правильно вернуть его в AppSync как Json? Один будет $context.result, а другой $context.prev.result.

Какие-либо методы / функции, которые могут объединить их обоих в VTL (они имеют тип List, если я не ошибаюсь)?

Изменить: на данный момент это мое единственное решение; не кажется эффективным, поскольку он перебирает весь список и добавляет его один за другим в другой список:

#foreach( $item in $context.prev.result )
    $util.qr($context.result.add($item))
#end

$util.toJson($context.result)

Спасибо


person Saed SayedAhmed    schedule 14.01.2021    source источник


Ответы (1)


У меня точно такая же проблема.

Чистого способа решения этой проблемы не нашел. Я напрямую отредактировал окончательный результат, чтобы объединить списки.

Мой шаблон после сопоставления:

#set( $liste1 = $ctx.prev.result )
#set( $liste2 = $ctx.result )

#set( $strliste1 = $util.toJson($liste1) )
#set( $liste1start = 1 )
#set( $liste1end = $strliste1.length() - 1 )
#set( $newliste1 = $strliste1.substring($liste1start, $liste1end))

#set( $strliste2 = $util.toJson($liste2) )
#set( $liste2start = 1 )
#set( $liste2end = $strliste2.length() - 1 )
#set( $newliste2 = $strliste2.substring($liste2start, $liste2end))

#set( $result = "[$newliste1 , $newliste2]" )
$result
person Y. Hassan    schedule 06.05.2021