在构建 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 服务器

构建 GraphQL 类型

Webonyx/Graphql-php 入门:如何在 cURL 中获取 API 的响应而不会从 API 实现中获得回声?