当前位置: 首页 > 知识库问答 >
问题:

GraphQL—执行批处理查询时使用别名与使用多个查询对象之间的区别

容柏
2023-03-14

我是GraphQL的新手,所以如果我在需要的地方错了,请纠正我。我想知道在单个请求中执行批处理查询的最佳方式或最合适的方式是什么。我见过这样做的例子:

[
  {
    query: "query(param1)"
  },
  {
    query: "query(param2)"
  }
]

或者使用别名来完成同样的事情的例子:

query {
  alias1: resolver1(param1)
  alias2: resolver2(param2)
}

在我看来,我认为别名是更合适的选择,因为它是一个单一的查询,在该查询中,我请求具有不同参数的数据。那么,在上述两个选项之间,在GraphQL中执行批处理查询更合适的选项是什么?为什么?谢谢!

共有1个答案

邹开畅
2023-03-14

并非所有库都支持通过向服务器发送一组批处理操作。这不是GraphQL的一个特性,而只是一些服务器库支持的一个方便的特性。另一方面,所有GraphQL服务器都支持在单个操作中包含多个根级别字段。因此,如果您预计要查询的后端将来可能会更改,那么您可能希望使用选项2而不是选项1,以避免将来可能需要重构代码。

另一方面,批处理通常是可取的,因为它允许您混合操作类型。虽然您可以在单个操作中包含任意数量的根级别字段,但一次只能执行一个操作——这意味着您不能将查询和突变与选项#2混合使用。如果这是您需要做的事情,那么批处理是在单个请求中实现它的唯一方法(假设您的服务器支持它)。

 类似资料:
  • 问题内容: 查询,本机查询,命名查询和类型查询之间有什么区别?“独立”查询是否存在,还是只是缩写?在我看来,本机查询是用简单sql编写的查询,而命名查询与实体(hibernate映射)有关。有人可以简要解释一下吗? 问题答案: 询问 查询是指JPQL / HQL查询,其语法类似于通常用于执行DML语句(CRUD操作)的SQL。 在JPA中,您可以使用创建查询。您可以查看API以获得更多详细信息。

  • 问题内容: 我是事件/回调样式编程和NodeJS的新手。我正在尝试实现一个小的http服务器,它使用node-mysql模块来提供ddbb数据。 我的问题来自查询结构。由于经常有一些查询需要运行先前查询的结果,因此我无法同时(异步)运行所有查询,因此不得不等待一些结果。 我的第一种方法是同时运行所有非依赖性查询,然后循环运行,直到所有非依赖性查询都设置了一个标志,说我已经完成,这样我就可以继续处理

  • 需求:从一个用户界面,我得到一个数据库表的选定列表。这些表中的数据将被提取并存储在文件位置。我们希望使用NiFi Rest API,因为有定制UI的需求。因此,我们使用REST API调用NiFi处理器。 问题是如何在循环中为在分隔字符串中接收的每个表名调用ExecuteSQL。 如果需要更多的信息,请让我知道。

  • 该查询返回一个“活动”数组,但“归档”数组仍然为空。 我已经尝试了切换(首先将存档别名,切换布尔值以确保我可以访问存档活动的数据等)。问题显然出在“存档”别名上。 当我对Strapi的GraphQL playground使用相同的查询时,我会得到所需的结果: ...返回... 如何使查询在Vue.js中与Apollo一起工作?

  • 正在尝试执行与4个变量匹配的select查询,其中一个变量正在检查标题中的字符串。如何使用python游标类执行LIKE语句?还是另一种方式? 编辑:表模式

  • 问题内容: 我有一个名为generate_table的函数,该函数需要2个输入参数(和) 现在,我尝试使用PLPGSQL处理第二个函数,该函数将获取所有分支的列表以及每个分支的最新日期,并将其作为参数传递给generate_table函数。 我的查询是这样的: 结果如下: 我需要的是函数运行这样的内容 我已经阅读了很多有关PLPGSQL的文章,但到目前为止,我只能说我几乎不了解其基础知识。 我读到