如何在没有 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”字段进行后处理?