使用GraphQL连接到多个数据库

时间:2019-03-22 13:54:24

标签: graphql

我们正在使用apollo服务器2构建新的GraphQL api。我们的大多数数据都存储在MongoDB中,并且能够使用mongoose轻松访问。但是,我们的mySQL数据库中存在许多数据点。我们如何在GraphQL API中连接到多个数据库以连接到mongodb和mySQL?

2 个答案:

答案 0 :(得分:1)

Apollo服务器与您使用的数据库数量无关,因此您应该能够在节点进程允许的情况下建立尽可能多的数据库连接。

您将必须使用数据加载器定义解析逻辑,其中某些字段从SQL数据库中获取数据,而某些字段从mongoDB中获取数据。

您可能要考虑的另一种策略是为这些数据库创建单独的(微)服务。然后,您的GraphQL服务器将从这些服务中获取其数据,并完全删除数据库处理。

答案 1 :(得分:0)

这是您的图层:

客户端层(浏览器)具有GraphQL客户端-> http服务器层(例如Apolo)-> GraphQL Server提供程序,此层可理解GraphQL查询。它包含您的GrapgQL解析器。 ->数据存储。

配置数据库提供程序所需的位置是GraphQL Enpoint所在的位置。

就我而言,我有Java背景。该设置将是具有构建GraphQL查询能力的Javascript客户端。能够缓存GraphQL查询响应的Http服务器。 GraphQL提供程序随附的Jetty服务器。然后,我的数据源将在那里配置。

Node.js的结构非常相似。层,构造块是相同的。