Apollo GraphQL - используя библиотеку apollo-datasource-rest, как получить определенную часть объекта ответа - PullRequest
0 голосов
/ 20 сентября 2019

Я использую NodeJS и библиотеку Apollo GraphQL, я также использую модуль apollo-datasource-rest, чтобы я мог использовать существующие REST Api.

Ответ HTTP от существующего API Rest приходитследующий формат {"meta": {"Обновлено": "2019-08-19T16: 40: 07.204Z", "NumResults": 425,}, "data": [{. здесь много данных.}]}"

GraphQL не может использовать этот источник данных, так как ожидает, что возвращенный объект будет данными.

Как я могу заставить мое приложение использовать только элемент данных HTTP Fetch, который он выполняет дляAPI бэкэнда

const { ApolloServer } = require('apollo-server');
const { RESTDataSource } = require('apollo-datasource-rest');
const typeDefs = require('./schema');
const resolvers = require('./resolvers');

class EndpointAPI extends RESTDataSource {

  constructor() {
    super();
    this.baseURL = 'https://myapi.com/api';
  }

 async getData() {
    return this.get()
  }

}

const server = new ApolloServer({
  typeDefs,
  resolvers,
  dataSources: () => ({
    EndpointAPI: new EndpointAPI()
  })
});



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

...