Мы сталкиваемся с ошибкой при настройке нашего приложения для подключения к GraphQL. Нашей основной потребностью являются подписки, в настоящее время наш код прекрасно справляется с этим. Но наши запросы отвечают "Leads not found in query_root"
Когда мы изменяем позиционирование нашего кода подключения, запрос теперь будет работать, но подписки прекратят подключение.
const scheme = proto => {
return window.location.protocol === 'https:' ? `${proto}s` : proto;
};
const wsurl = `${scheme('ws')}://${HASURA_GRAPHQL_ENGINE_HOSTNAME}/v1/graphql`;
const httpurl = `${scheme('http')}://${HASURA_GRAPHQL_ENGINE_HOSTNAME}/v1/graphql`;
// Create a WebSocket link:
const wsLink = new WebSocketLink({
uri: wsurl,
options: {
reconnect: true,
connectionParams: {
headers: {
'x-hasura-access-key': `${HASURA_ACCESS_KEY}`
}
}
}
});
const httpLink = new HttpLink({
uri: httpurl,
options: {
connectionParams: {
headers: {
'x-hasura-access-key': `${HASURA_ACCESS_KEY}`
}
}
}
});
const link = split(
// split based on operation type
({ query }) => {
const { kind, operation } = getMainDefinition(query);
return kind === 'OperationDefinition' && operation === 'subscription';
},
wsLink,
httpLink
);
const client = new ApolloClient({
link,
cache: new InMemoryCache()
});
export default client;
В ссылкеconst, если мы поместим wsLink ниже httpLink, то wsLink остановится и httpLink заработает.