#amazon-web-services #graphql #aws-appsync #aws-amplify
#amazon-web-services #graphql #aws-appsync #aws-amplify
Вопрос:
У меня есть мутация, которая возвращает тип объединения.
union Task = PersonalTask | OtherTask
mutation updateTask(...) : Task
subscription onUpdatePersonalTask(id: ID): PersonalTask
@aws_subscribe(mutations: ["updateTask"])
Но это выдает ошибку из-за несоответствия типов в mutation (return — это, Task
который является объединением) и subscription (возвращает PersonalTask
)
Вопросы
-
Как заставить подписку преобразовать тип объединения мутаций в определенный тип?
-
Есть ли более чистый способ для подписки разрешить автоматический тип?
Ответ №1:
Это может быть просто ограничением реализации директивы. Из документов:
Возвращаемый тип поля подписки в вашей схеме должен соответствовать возвращаемому типу соответствующего поля мутации.
Предполагая, что существует какое-то type
поле, которое вы используете для различения PersonalTask
и an OtherTask
, одним из обходных путей было бы подписаться на все задачи, но использовать аргумент для сужения подписки:
подписка на обновление задачи (тип: Строка!): Задача @aws_subscribe(изменения: [«updateTask»])