В шлюзе apollo поддерживаются только протоколы HTTP (S).
Я пытаюсь запустить шлюз apollo локально, используя управляемую конфигурацию из управляемого решения apollo. Он загружает схему, и все в порядке, но когда я пытаюсь выполнить запрос на игровой площадке, я получаю "Поддерживаются только протоколы HTTP(S)". Я знаю, что могу использовать serviceList, но я хотел бы иметь возможность запускать его локально для POC с менеджером графиков apollo. Кажется, это проблема с node-fetch, которую использует apollo, поскольку он даже не вызывает базовые источники данных и дает сбой на шлюзе.
/* istanbul ignore file */
import {ApolloServer} from 'apollo-server';
import {ApolloGateway} from '@apollo/gateway';
const {
NODE_ENV,
} = process.env;
const gateway: ApolloGateway = new ApolloGateway();
const main = async () => {
return new ApolloServer({
gateway,
playground: NODE_ENV !== 'production',
subscriptions: false,
});
}
export default main;
Я искал повсюду в Интернете и, похоже, не нашел ответа, поэтому любая помощь будет принята с благодарностью. Есть идеи, как заставить это работать локально? Заранее спасибо.
2 ответа
Скорее всего, проблема связана со строкой конечной точки, которую вы определили для этой службы cms.
Если вы настроили загрузчик данных, который запрашивает «www.example.com/api», он выдаст эту ошибку, вам нужно, чтобы он был «https://www.example.com/api» или «http://www .example.com/api".
Посмотрите, как определены ваши загрузчики и где определяется имя хоста, и я уверен, вы увидите, что перед ним нет никакого протокола http.
Источник: Сам с этим столкнулся.
я столкнулся с той же проблемой. Вы нашли какое-нибудь решение для этого.