我已经在Host IP上创建了一个mySQL数据库,但是现在希望使用GraphQL来简化前端的查询。我知道如何从头开始设置GraphQL服务器,但不确定如何访问后端的现有表以及在何处定义使用它们的架构。如何从GraphQL服务器连接到数据库?
我考虑过使用Prisma,但是该服务不允许连接到具有预先存在的数据的mySQL数据库。
感谢您的帮助!
答案 0 :(得分: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进行了很好的描述
答案 1 :(得分:0)
您可以尝试一种名为SwitchQL(github.com/SwitchQL/SwitchQL)的新开源工具。我已经在这个项目上工作了一段时间了。
您将连接字符串传递给它,它返回在现有数据库之上运行graphql服务器所需的一切。它还会返回符合Apollo的客户端突变和查询。
我们目前仅支持Postgres。如果您最终尝试过,请告诉我您的想法!