【问题标题】:Connect to multiple database with GraphQL使用 GraphQL 连接到多个数据库
【发布时间】:2019-08-13 12:43:52
【问题描述】:

我们正在使用 apollo server 2 构建新的 GraphQL api。我们的大部分数据都保存在 MongoDB 中,我们可以使用 mongoose 轻松访问。但是我们的 mySQL 数据库中存在许多数据点。我们如何在 GraphQL API 中连接多个数据库来连接 mongodb 和 mySQL?

【问题讨论】:

    标签: graphql


    【解决方案1】:

    Apollo 服务器不关心您使用了多少数据库,因此您应该能够设置尽可能多的数据库连接,只要您的节点进程允许。

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

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

    【讨论】:

      【解决方案2】:

      这是你的图层:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2017-07-27
        • 2021-12-09
        • 2014-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-17
        • 2020-11-12
        • 1970-01-01
        相关资源
        最近更新 更多