api-platform: автоматические подписки mercure для запросов GraphQL

api-platform автоматически отправляет события в концентратор mercure при обновлении ресурсов, отмеченных mercure=true, и публикует темы для прослушивания в соответствующих GET конечных точках. Отлично. Есть ли уже вариант, который я могу использовать в сгенерированных конечных точках GraphQL?

В документах mercure написано: https://github.com/dunglas/mercure#how-to-use-mercure-with-graphql, что mercure должен «очень хорошо» интегрироваться с любым GraphQL API, если он «возвращает URL соответствующей темы». Но, как правило, API GraphQL, созданный api-платформой, не работает (https://api-platform.com/docs/core/mercure/). Я что-то пропускаю или это скоро? Использование apollo-vue во внешнем интерфейсе.

Чтобы обойти эту проблему, я мог прослушивать изменения во всех идентификаторах сущностей, используя выделенные EventSource темы во внешнем интерфейсе. Я бы использовал там шаблон URI, например http://localhost:8080/product_streams/{id}. Но мне не удается написать шаблон uri, который соответствует только определенным идентификаторам, например: http://localhost:8080/product_streams/{id:123,456,789} для получения только обновлений для потоков № 123 456 789 (пробовал https://uri-template-tester.mercure.rocks/ && https://tools.ietf.org/html/rfc6570#page-18) безуспешно :(


person Stefan    schedule 24.03.2019    source источник
comment
какие-нибудь обновления, братан? все еще сталкивается с той же проблемой, что и вы: /   -  person SlimenTN    schedule 18.11.2020
comment
Я проделал некоторое расстояние между мной и mercure за последний год, поэтому, к сожалению, я здесь не помог, извините :(   -  person Stefan    schedule 20.11.2020


Ответы (1)


Изменить: подписки GraphQL теперь поддерживаются платформой API. Ознакомьтесь с документацией: https://api-platform.com/docs/master/core/graphql/#subscriptions

Платформа API пока не поддерживает подписки GraphQL. Планируется добавить поддержку подписок с использованием Mercure (которая, помимо прочего, предназначена для этого варианта использования), но работа еще не началась. Любая помощь приветствуется!

person Kévin Dunglas    schedule 09.08.2019