Федеративный шлюз Nestjs + Apollo GraphQL не может анализировать сервисы из-за «неверного запроса», доступен воспроизводимый репозиторий git.

В монорепозитории NX я создаю 3 приложения NestJS, + иgatewayдля начала. Все они работают на платформе Apollo Graphql и следуют официальной документации NestJS.

Проблема, с которой я сталкиваюсь, заключается в том, что с обоимиuser-serviceиauth-serviceи успешно обрабатывая запросы как отдельные серверы, в то же время шлюз выдает

       Couldn't load service definitions for "auth" at http://localhost:3100/apis/auth-service/graphql: 400: Bad Request

Сами службы представляют собой стандартные графические приложения, ничего базового.

Определения шлюза следующие:

      {
server: {
          debug: true,
          playground: true,
          autoSchemaFile: './apps/gateway/schema.gql',
          sortSchema: true,
          introspection: true,
          cors: ['*'],
          path: '/apis/gateway/graphql';
        },
gateway: {
            supergraphSdl: new IntrospectAndCompose({
              subgraphHealthCheck: true,
              subgraphs: [
                {
                  name: 'user',
                  url: resolveSubgraphUrl('user'),
                },
                {
                  name: 'auth',
                  url: resolveSubgraphUrl('auth'),
                },
              ],
            }),
          }
}

Я создал монорепозиторий на основе nx, который позволяет вам легко воспроизвести эту проблему, запустив все 3 сервера в режиме наблюдения одновременно, на локальном хосте, на разных портах.

Все нарисовано как надо. Ссылка: https://github.com/sebastiangug/nestjs-federation.git

README содержит две команды, необходимые для его запуска, а также тот же набор инструкций, а также запросы проверки работоспособности, доступные для каждой службы.

Используемые версии:

          "@apollo/subgraph": "2.1.3",
    "@apollo/federation": "0.37.1",
    "@apollo/gateway": "2.1.3",
    "apollo-server-express": "3.6.7",
    "graphql": "16.5.0",
    "@nestjs/graphql": "10.1.3",
    "@nestjs/platform-express": "9.0.8",

Любые идеи, что я делаю неправильно здесь или какая дополнительная конфигурация необходима для этого?

Спасибо

0 ответов

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