Как исправить ошибку «Загрузка службы в Engine → Неизвестная директива« ключ »» при попытке отправить службу в Apollo Engine? - PullRequest
0 голосов
/ 04 ноября 2019

Когда я пытаюсь перенести приложение apollo-server на Apollo Engine через apollo service:push --endpoint=http://localhost:4001, я получаю сообщение об ошибке: Uploading service to Engine → Unknown directive "key". Что я делаю не так?

В настоящее время я настраиваю бэкэнд-проектс кучей микросервисов, и я хочу использовать новую функцию управляемой федерации Apollos, в которой схема graphql каждой микросервисной службы передается в диспетчер графов Apollo и объединяется сервером шлюза apollo.

Моя схема выглядит следующим образом:

extend type Query {
  me: User
}

type User @key(fields: "id") {
  id: ID!
  name: String
  username: String
}

Это мои средства распознавания:

const resolvers = {
  Query: {
    me() {
      return users[0];
    }
  },
  User: {
    __resolveReference(object) {
      return users.find(user => user.id === object.id);
    }
  }
};

И это настройки моего сервера:

const server = new ApolloServer({
  schema: buildFederatedSchema([{ typeDefs, resolvers }])
});

server.listen({ port: 4001 }).then(({ url }) => {
  console.log(`Server ready at ${url}`);
});

apollo.config.js

module.exports = {
  service: {
    localSchemaFile: "./src/graphql/schema.graphql"
  }
};

Вот полное сообщение об ошибке:

npx apollo service:push --endpoint=http://localhost:4001
  √ Loading Apollo Project
  × Uploading service to Engine
    → Unknown directive "key".
GraphQLSchemaValidationError: Unknown directive "key".
    at Object.buildSchemaFromSDL (C:/Users/Juliu/AppData/Roaming/npm-cache/_npx/13168/node_modules/apollo/node_modules/apollo-graphql/lib/schema/buildSchemaFromSDL.js:38:15)
    at FileSchemaProvider.resolveSchema (C:/Users/Juliu/AppData/Roaming/npm-cache/_npx/13168/node_modules/apollo/node_modules/apollo-language-server/lib/providers/schema/file.js:24:40)
    at GraphQLServiceProject.resolveSchema (C:/Users/Juliu/AppData/Roaming/npm-cache/_npx/13168/node_modules/apollo/node_modules/apollo-language-server/lib/project/base.js:66:36)
    at Task.task (C:/Users/Juliu/AppData/Roaming/npm-cache/_npx/13168/node_modules/apollo/lib/commands/service/push.js:70:50)
...