我们已经准备好了我们的解析器和数据源,但它们还不知道如何协同工作。
Apollo Server是我们的所有构建元素(模式、解析器和数据源)实现完美协作的地方。

在server/src/index.js,我们在第一部分中配置了我们的Apollo Server,现在我们可以用解析器替换我们的模拟对象。
让我们删除mocks对象,以及ApolloServer构造器中的mocks属性。
接下来,让我们在顶部导入我们的resolvers文件。
const resolvers = require("./resolvers");
然后将它添加到ApolloServer选项中。
const server = new ApolloServer({typeDefs,resolvers,});
这样我们就处理好了解析器。
接下来,在我们的 resolvers 导入下方,我们将引入我们track-api,也就是我们的数据源文件(继承自 RESTDataSource),并将其命名为 TrackAPI(注意 PascalCase 规范,因为这里我们处理的是类)。
const TrackAPI = require("./datasources/track-api");
为了将我们的服务器与我们的 TrackAPI 连接,我们将添加 dataSources 键。这将使我们能够从我们的 resolvers的 context 参数访问 dataSources.trackAPI(及其方法)。Apollo Server 会为我们处理所有连接工作,非常方便!
要了解更多关于 ApolloServer 可以接受哪些选项,请查看文档。
完成后的服务器配置将如下所示:
const server = new ApolloServer({typeDefs,resolvers,dataSources: () => {return {trackAPI: new TrackAPI(),};},});
使用 dataSources 键为 RestDataSource 类 SpaceCatsAPI 配置 ApolloServer 选项,这样我们就能在我们的 resolver 中通过 dataSources.spaceCatsAPI 访问到它。(请注意,这是大小写敏感的!)
ApolloServer 选项中配置 dataSources 键?我们的服务器现在已完全配置,可以处理实时数据。
分享您对本课的疑问和评论
您的反馈帮助我们改进!如果您遇到困难或困惑,请告诉我们,我们将帮助您解决问题。所有评论都是公开的,并且必须遵循 Apollo 行为准则。请注意,已解决的问题或已解决的评论可能会被删除。
您需要在以下内容中有一个 GitHub 账户。还没有吗? 请在我们的 Odyssey 论坛上发布帖子。