API-платформа: автоматические подписки Mercure для запросов GraphQL

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

В документах mercure говорится: https://github.com/dunglas/mercure#how-to-use-mercure-with-graphql, что mercure должен «очень хорошо» интегрироваться с любым API GraphQL, если он «возвращает соответствующий 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://www.rfc-editor.org/rfc/rfc6570#page-18) безуспешно :(

есть обновления бро? все еще сталкиваюсь с той же проблемой, что и вы :/

SlimenTN 18.11.2020 16:41

За последний год я сильно отдалился от Mercure, так что, к сожалению, я здесь ничем не помогу, извините :(

Stefan 20.11.2020 11:26
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
2
2
387
1

Ответы 1

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

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

Другие вопросы по теме