我已经在主机ip上创建了一个mysql数据库,但是现在希望使用graphql使前端的查询更容易。我知道如何从头开始设置graphql服务器,但不确定如何访问后端预先存在的表,以及在何处定义要使用它们的模式。如何从graphql服务器连接到数据库?prisma是我考虑过的一个选项,但是该服务不允许连接到具有预先存在的数据的mysql数据库。谢谢你的帮助!
u59ebvdq1#
如果您想要一种相对简单/便宜的方法来公开整个数据库的crud操作,prisma和其他orm是一个不错的选择。如果只需要公开数据的特定方面,或者只需要快速开始迭代,那么可以在服务器级别定义graphqlapi模式,并根据需要编写连接到数据库的解析器。您的模式不需要反映整个数据库,只需要反映您希望向客户机公开的数据。在我使用graphqlapi的经验中,我发现对于较小的应用程序来说,手动编写查询模式和创建为客户机服务所需的解析器既更快又更容易维护。您可以使用sql客户机,如https://github.com/mysqljs/mysql 与数据库接口。然后,为模式编写的解析器将查询数据库以获取满足客户机请求所需的任何数据,即使它跨越多个表也是如此。graphql规范学习网站graphql.org对这个过程有很好的描述https://graphql.org/learn/execution/#root-字段解析程序
8yparm6h2#
您可以尝试一个新的开源工具switchql(github.com/switchql/switchql)。我做这个项目已经有一段时间了。将连接字符串传递给它,它将返回在现有数据库上运行graphql服务器所需的所有内容。它还返回apollo兼容的客户端和查询。目前我们只支持postgres。如果你最后尝试了,请告诉我你的想法!
2条答案
按热度按时间u59ebvdq1#
如果您想要一种相对简单/便宜的方法来公开整个数据库的crud操作,prisma和其他orm是一个不错的选择。
如果只需要公开数据的特定方面,或者只需要快速开始迭代,那么可以在服务器级别定义graphqlapi模式,并根据需要编写连接到数据库的解析器。您的模式不需要反映整个数据库,只需要反映您希望向客户机公开的数据。
在我使用graphqlapi的经验中,我发现对于较小的应用程序来说,手动编写查询模式和创建为客户机服务所需的解析器既更快又更容易维护。
您可以使用sql客户机,如https://github.com/mysqljs/mysql 与数据库接口。然后,为模式编写的解析器将查询数据库以获取满足客户机请求所需的任何数据,即使它跨越多个表也是如此。
graphql规范学习网站graphql.org对这个过程有很好的描述https://graphql.org/learn/execution/#root-字段解析程序
8yparm6h2#
您可以尝试一个新的开源工具switchql(github.com/switchql/switchql)。我做这个项目已经有一段时间了。
将连接字符串传递给它,它将返回在现有数据库上运行graphql服务器所需的所有内容。它还返回apollo兼容的客户端和查询。
目前我们只支持postgres。如果你最后尝试了,请告诉我你的想法!