我正在使用NodeJS和Apollo GraphQL库,也正在使用apollo-datasource-rest模块,以便可以使用现有的REST Api。
现有Rest API的HTTP响应采用以下格式 {“ meta”:{“ Updated”:“ 2019-08-19T16:40:07.204Z”,“ NumResults”:425,},“ data”:[{。很多数据在这里。}]}“” >
GraphQL无法使用此数据源,因为它期望返回的对象是数据。
如何使我的应用程序仅使用它对后端API的HTTP Fetch的数据元素
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}`);
});