Я использую 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}`);
});