Appsync: подписаться на элемент в массиве - PullRequest
0 голосов
/ 30 июня 2019

Относительно AWS AppSync. Есть ли способ подписки на элемент в массиве, например:

onSendMessage(recipientIds:[myID,otherPotentiallyRandomAndUnknownIds]) {

}

Я попытался просто добавить искомый элемент, однако это не таквызвать подписку, если мне не хватает других элементов (и по порядку тоже)

1 Ответ

0 голосов
/ 04 июля 2019

К сожалению, это нельзя сделать тривиально.Также, как вы заметили, порядок имеет значение, потому что в GraphQL он должен рассматриваться как список (который упорядочен).Таким образом, подписка срабатывает в ожидании того порядка, который вы указали в схеме.Он также ожидает точные аргументы, которые вы предоставляете в списке, потому что схема GraphQL по сути рассматривается клиентами как контракт, поэтому, если в контракте указывается, что подписка находится в списке List с этими элементами в этом порядке, то он инициирует подписку на основечто.

Теперь то, что вы могли бы сделать, это настроить динамо-поток (принимая в качестве источника данных DynamoDB), который подает любые изменения в таблице в лямбду, откуда вы можете сделать мутацию в AppSync (в зависимости от того, еслиизменение было внесено в элемент в массиве) для запуска подписки (настройка простой мутации / подписок только для этого варианта использования).Это своего рода обходной путь, и могут быть другие новые решения, которые вы можете изучить.

...