如何将GraphQL服务器添加到预先存在的SQL数据库?

问题描述 投票:1回答:3

我已经在主机IP上创建了一个mySQL数据库,但是现在希望使用GraphQL来简化前端的查询。我知道如何从头开始设置GraphQL服务器,但不确定如何访问后端的现有表以及在哪里定义使用它们的架构。如何从GraphQL服务器连接到数据库?

Prisma是我考虑的选项,但该服务不允许连接到具有预先存在的数据的mySQL数据库。

感谢您的帮助!

javascript mysql database graphql
3个回答
1
投票

如果希望以相对简单/便宜的方式公开整个数据库的CRUD操作,Prisma和其他ORM是一个不错的选择。

如果只需要公开数据的特定方面或只需要开始快速迭代,则可以在服务器级别定义GraphQL API架构,并根据需要编写连接到数据库的解析器。您的架构不需要反映您的整个数据库,而仅需要反映您要向客户端公开的数据。

根据我对GraphQL API的经验,发现为服务客户端而手动编写查询模式和创建解析器对于小型应用程序来说既快捷又容易维护。

您可以使用https://github.com/mysqljs/mysql之类的SQL客户端与数据库进行接口。您为架构编写的解析器随后将在数据库中查询满足客户端请求所需的任何数据,即使该数据跨越多个表也是如此。

[GraphQL规范学习网站graphql.org对这个过程有很好的描述https://graphql.org/learn/execution/#root-fields-resolvers


0
投票

您可以尝试使用一种名为SwitchQL(github.com/SwitchQL/SwitchQL)的新开源工具。我已经在这个项目上工作了一段时间。

您将连接字符串传递给它,它返回在现有数据库之上运行graphql服务器所需的一切。它还返回符合Apollo的客户端突变和查询。

目前,我们仅支持Postgres。如果您最终尝试一下,请让我知道您的想法!


0
投票

您可以尝试hasura,prisma。这两个很受欢迎。

我正在当前项目中使用轻量级库:https://github.com/charlie0077/graphql-server-crud

注意:我是那个库的作者。

© www.soinside.com 2019 - 2024. All rights reserved.