В шлюзе 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.

Источник: Сам с этим столкнулся.

я столкнулся с той же проблемой. Вы нашли какое-нибудь решение для этого.

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