0
A
回答
1
这是如何由GraphQL查询管理的?
简短回答:这不是(托管)。你必须把它写在你的解析器中。
你GraphQL模式基本上只是一个代表节点表示在图边缘类型和字段的声明。 GraphQL是查询此图的语言。在架构的每一个边缘,您都可以编写一个函数,以便在查询遍历该边时如何获取数据。这个函数被称为“解析器”,只要它返回有效数据,就可以在解析器中放置几乎任何代码。这意味着GraphQL完全是,绝对是数据库无关的。您的解析器负责与您的数据库交谈。
因此,当涉及到SQL和连接时,关注查询完全是API开发人员的责任。 GraphQL对SQL或连接一无所知,因此这基本上是您必须编写的应用程序的自定义逻辑。事实证明,构建用于解决GraphQL查询数据的SQL查询是非常困难的,而不会遇到像急于获取太多数据或“N + 1”问题那样的问题。
开源社区中的一些工具已经出现,可以帮助解决这个问题。这里有一对夫妇,我会建议在Node.js的空间:
- DataLoader - 数据库无关的工具,批处理查询和缓存个人记录。
- Join Monster - 用于高效数据检索和查询批处理的SQL定制工具。它检查每个查询和您的模式并动态生成SQL查询。
声明:我是Join Monster的联合创始人。
相关问题
- 1. Graphql定制加入
- 2. 试图加入json列与其他表普通列错误
- 3. GraphQL查询与表加入
- 4. 将@Resource注入普通类
- 5. Cassandra PreparedStatement vs普通插入
- 6. 合并行与普通列
- 7. 普通人的PHP加密?
- 8. 普通名字的普通计算机可解析列表?
- 9. 普通队列vs SEDA队列
- 10. GraphQL时间序列
- 11. 如何将React作为普通的JavaScript文件加入
- 12. SQL Server查询性能 - 普通加入VS子查询
- 13. 加入嵌套表和普通表来获取
- 14. 嵌入.exe与普通文件
- 15. 从普通阵列创建的QList
- 16. 使用代理与普通阵列
- 17. Jooq - 普通SQL参数数组/列表
- 18. PHP,合并阵列与普通钥匙
- 19. 未能转换为普通阵列
- 20. Gulp.js不会重新加载普通CSS
- 21. 动态加载jquery在普通的javascript
- 22. IE6 - 无法加载普通JPG
- 23. 普通UIView没有被添加到UIStackView
- 24. 错误加载@角/普通/ HTTP - 角2
- 25. 普通代码
- 26. 普通浮法
- 27. 普通主机
- 28. 普通表达
- 29. GraphQL java后端入门
- 30. graphql中的Rails jsonb列