"Неверный URL: слова" - apollo-сервер - PullRequest
0 голосов
/ 20 апреля 2020

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

const { ApolloServer, gql } = require('apollo-server');
const { RESTDataSource } = require('apollo-datasource-rest');

const typeDefs = gql`
  type Word {
    id: ID!
    word: String!
    translation: String!
  }
  type Query {
    words: [Word]
    word(id: ID): Word
  }
`;

class WordsAPI extends RESTDataSource {
  constructor() {
    super();
    this.baseURL = 'localhost:5001/'
  }

  async getWord(id) {
    return this.get(`word/${id}`)
  }

  async getAllWords() {
    return this.get('words')
  }

  async getSpecifiedWords(SpecWord) {
    return this.get(`words/${SpecWord}`)
  }
}

const resolvers = {
  Query: {
    words: (_, __, { dataSources }) =>
      dataSources.wordsAPI.getAllWords(),
    word: async (_source, { id }, { dataSources }) => {
      return dataSources.wordsAPI.getWord(id);
    }
  }
}

const server = new ApolloServer({
  typeDefs,
  resolvers,
  dataSources: () => {
    return {
      wordsAPI: new WordsAPI()
    };
  },
  context: () => {
    return {
    };
  },
});

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

После

query {
 words {
   translation
 }
}

На детской площадке я получаю неверный URL: слова.
На localhost: 5001 / words - это база данных, а в Почтальоне это работает. Чем я плох?

...