Требуется решение для интеграции Node+Express+GraphQL+ApolloServer+ElasticSearch
Мне нужно разработать поддерживаемое приложение на NodeJS ExpressJS и GraphQL, и для этого я использую сервер Apollo GraphQL. Теперь мне нужно подключить этот GraphQL к ElasticSearch, чтобы я мог напрямую писать запросы ElasticSearch в Apollo Playground, как раньше я использовал для запросов GraphQL.
Может ли кто-нибудь помочь мне с этим сценарием?
2 ответа
Используйте объекты и единую ответственность.
создайте наблюдаемую во внешнем интерфейсе, которая просматривает API, который затем API может получать данные из эластичного кластера.
Проблема, как вы указали, заключается в том, что вы используете graphql напрямую, в то время как graphql в основном предназначен для создания слоя между передней и задней частью, то, что вы делаете, - это подключение уровня API напрямую к задней части, поэтому его необходимо изменить через новый объект, который существует только для API, что бы ни случилось с вашей спиной, это должно остаться прежним, поэтому graphql важен, его нужно использовать именно таким образом.
Существует несколько сценариев для этого посредством манипулирования объектами, некоторые используют выделенный файл для elasticsearch, а другие используют логику непосредственно для распознавателей в graphql, а затем просто добавляют основной метод в объявление сервера graphql/nodejs, чтобы инициализация началась (индекс создание и т. д.) (некоторые называют это index.ts, это зависит)