如何在没有 Apollo Server 但使用 express-graphql 的情况下使用 apollo-datasource-rest

Posted

技术标签:

【中文标题】如何在没有 Apollo Server 但使用 express-graphql 的情况下使用 apollo-datasource-rest【英文标题】:How to use apollo-datasource-rest without Apollo Server but with express-graphql 【发布时间】:2019-12-28 14:18:38 【问题描述】:

我正在制作一个位于我们旧的 rest api 之间的 graphql 服务器。会有 db 连接,但在大多数情况下,graphql 服务器中的数据将来自对那些 rest api 端点的 http 调用。

到目前为止,已经可以坚持使用干净的 express-graphql 服务器,避免不得不切换到 Apollo 服务器(在前端使用 Relay,所以对使用 Apollo 服务器有点犹豫),但是由于这些数据源是在下面添加的dataSources 属性是 apollo-datasource-rest 一个 npm 包,它被烘焙到 Apollo 服务器中,因此如果我们想使用它,我们就不得不切换,或者有什么方法可以在没有服务器库的情况下使用数据源?

【问题讨论】:

【参考方案1】:

Apollo Server 会在后台初始化数据源,因此您不能只将数据源添加到您的上下文中就可以了。

也就是说,您可以非常无缝地从 express-graphql 过渡到 apollo-server-express。所有 Apollo Server 实现都接受 schema 参数以传入现有模式——如果您不想使用 SDL,则不必使用。这两个库接受的参数之间存在一些差异,但在大多数情况下,API 非常相似。

【讨论】:

以上是关于如何在没有 Apollo Server 但使用 express-graphql 的情况下使用 apollo-datasource-rest的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Firestore Cloud Functions 上使用 Apollo Server GraphQL 在 TypeScript 中处理身份验证

在 Apollo-Server v2 中间件之后如何使用 Express 中间件?

为啥当我使用 apollo-server 上传文件时,文件已上传但文件为 0kb?

Apollo Server:如何在没有指令的情况下对所有“id:ID”字段进行后处理?

如何使用 Apollo Server 2.0 GraphQL 将模式指令中的信息作为返回的数据包含在内?

Apollo-Server,如何与 SailsJS 一起使用?