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

GraphQL API:突变还是查询?

南门飞
2023-03-14

我正在开发一个GraphQL API,其中有一个带有初步数据比较的导入特性(在现有数据之间

电流为:

  1. API使用者执行GQL查询查询预览导入($数据:字符串),其中,$数据是base64编码的电子表格。在后端解析数据,并在数据库中插入一条guid为的记录。最后,API返回电子表格中的数据与数据库中的数据以及guid之间的差异结果
  2. 前端然后要求用户在看到比较(创建、更新、删除)后确认导入。为此,向API发出请求,并将更改保存在数据库中

所以我想知道:previewImport应该是查询还是变异?从API消费者的角度来看,这绝对是一个查询。但在后端DB中插入了一条记录,尽管其唯一目的是在此后不久链接到confirimport请求,然后将其删除。

在GQL突变规范中,据说:

预计突变操作中的顶级字段会对底层数据系统产生副作用。

从技术上讲,温度记录确实会影响数据系统。但就领域而言,它并没有改变对应用程序重要的实体,所以我还是有点茫然

共有1个答案

计寒
2023-03-14

我同意如果预览操作是幂等的,那么查询预览端口(query previewImport)更直观。

查询不仅建议“读,而不是写”,还建议“我可以整天毫无错误地调用它”。另一方面,变异通常会持续一个更改,并通知我是否尝试重复相同的操作,无论是作为错误还是“已经处理,你这个白痴”响应。

 类似资料:
  • 问题内容: 有谁知道如何检查JavaScript中的变量是数字还是字符串? 问题答案: 如果你处理的文字符号,而不是构造函数,你可以使用typeof运算。 如果您是通过构造函数创建数字和字符串,比如,你应该记住,可能会返回了。 检查类型的更简单的方法可能是利用在underscore.js中找到的方法可以在[此处找到带注释的源代码), 这将返回以下布尔值:

  • 问题内容: 我有一个具有几个命​​令的应用程序。当您键入某个命令时,您必须输入有关某物/某人的其他信息。现在,根据情况,信息必须严格为整数或字符串。 但是,无论您使用raw_input()在Python中键入的内容实际上是一个字符串,无论如何,更具体地讲,我很快会不加尝试地……除非查看变量是否由数字或字符组成? 问题答案: 我认为您有两种选择: 只需尝试将其转换为,但要捕获异常: except V

  • 我尝试执行Graphql客户端查询。遗憾的是,我找不到任何关于如何使用动态图QL客户端进行简单变异的文档或示例。这是文件https://quarkus.io/guides/smallrye-graphql-client. {0}..{4} 是可变占位符。有人知道如何使用DynamicGraphlQlClient执行这个查询吗? 谢谢

  • 问题内容: 我有以下两个查询: 查询执行计划统计信息:( 相对于批次的查询成本) 查询1(子查询):56% 查询#2(加入):44% 我认为子查询是最佳的,因为子查询将在应用WHERE筛选器后执行。统计数据表明,Query#2-JOIN方法更好。 请建议。另外,作为SQL Server中级用户,我如何得出哪个查询更好(如果有帮助的话,除执行计划外,其他都可以) 谢谢你。 问题答案: 连接比子查询快

  • 我想运行一个复杂的HQL查询。我的一个参数是< code >集合 类似: spring甚至不能启动< code >???未映射 从表t中选择t,其中size((:codes)) = 0或t.code IN (:codes) 和许多其他人 是否有一种通用方法可以进行此检查并使此查询在不完全构建查询的情况下工作?

  • 我不断得到关于浮点数(即、或)是否有一个且只有一个精度值的混合答案,或者具有可以变化的精度值。 一个名为浮点与双精度的主题似乎暗示浮点精度是绝对精度。 然而,另一个被称为浮点和双精度之间的差异的主题说, 一般来说,双精度有15到16位十进制数字 另一位消息人士说, 浮点型变量的精度通常约为7位有效数字 double类型的变量通常具有约16位有效数字的精度 如果我使用的是敏感代码,当我的值不精确时,