在构建 Java GraphQL API 时,如何避免从数据库中过度获取(即仅获取查询中指定的字段)?
Posted
技术标签:
【中文标题】在构建 Java GraphQL API 时,如何避免从数据库中过度获取(即仅获取查询中指定的字段)?【英文标题】:When building a Java GraphQL API , how can I avoid Over-Fetching from the DB (i.e. fetching only for the fields specified in the query)? 【发布时间】:2019-03-16 01:55:21 【问题描述】:在我看到的大多数示例中,我需要为每种类型实现一个 fletcher,即每种类型都有一个通用查询。 由于 GraohQL 的承诺之一是减少服务器负载,我想知道如何自定义对数据库的查询,使其仅获取用户在 GraphQL 查询中指定的字段。
我知道我可以获取所有可能的字段,但在我看来这似乎没有抓住重点。
【问题讨论】:
【参考方案1】:我不知道这个特定的 java 实现,但它与其他解决方案类似。
您必须使用其他可用的上下文信息来优化数据库查询。根据docs,您可能正在寻找DataFetchingEnvironment
【讨论】:
以上是关于在构建 Java GraphQL API 时,如何避免从数据库中过度获取(即仅获取查询中指定的字段)?的主要内容,如果未能解决你的问题,请参考以下文章
graphql-java:如何在以编程方式生成 graphql 模式时添加自定义标量类型?
如何使用 HttpUrlConnect 使用 java 查询 Github graphql API
如何使用模拟的 graphql API 和外部服务的 GraphQL 端点
使用 graphql-java 构建 Relay GraphQL 服务器
Webonyx/Graphql-php 入门:如何在 cURL 中获取 API 的响应而不会从 API 实现中获得回声?