我正在读取GraphQL
documentation,其中描述了Query
和Mutation
。但是,缺少显示和/或描述它们之间差异的真实示例,最重要的是-什么时候使用它是合适的。
非常感谢您的解释。
按惯例:
Query
-用于查询数据(SELECT
操作)Mutation
-用于创建新数据和更新/删除现有数据(INSERT
,UPDATE
,DELETE
)技术上可以执行任何GraphQL查询以引起数据写入。但是有一个约定,所有导致写入的操作都应通过突变显式发送。
除了语义上的差异外,还有[[一项重要的技术差异:
GraphQL引擎Query
字段可以并行执行
,而Mutation
顶级字段必须串行执行根据规范:[如果操作是突变,则操作的结果是对突变根对象类型执行突变的顶级选择集的结果。此选择集。预计突变操作中的顶级字段会对基础数据系统产生副作用。连续执行所提供的突变可确保在这些副作用期间避免种族条件。应顺序执行
来源:https://graphql.github.io/graphql-spec/draft/#sec-Mutation
graphql中的查询用于获取数据,而突变用于INSERT / UPDATE / DELETE操作。
查询 =选择
mutation
=插入,更新,删除REST:
查询 => GET
,变异 => POST,PUT,PATCH,删除