Graphql 查询可以用于数据写入吗?
对于我的GraphQL应用程序,我想保存某些已解析字段的日志。因为用户可以自己查看这些日志,所以是否应该将其视为变异而不是查询的一部分 由于它不是应用程序的焦点,我认为使用变异是过激的,但我不确定用这种方式建模是否会遇到一些副作用Graphql 查询可以用于数据写入吗?,graphql,Graphql,对于我的GraphQL应用程序,我想保存某些已解析字段的日志。因为用户可以自己查看这些日志,所以是否应该将其视为变异而不是查询的一部分 由于它不是应用程序的焦点,我认为使用变异是过激的,但我不确定用这种方式建模是否会遇到一些副作用 我读过的其他问题并没有真正回答这个问题,如果这看起来像是重复的话,那么很抱歉。从概念上讲,Graphql查询和突变做的是相同的事情,但在执行解析器的方式上有所不同 有关以下查询: { user { name } posts { title
我读过的其他问题并没有真正回答这个问题,如果这看起来像是重复的话,那么很抱歉。从概念上讲,Graphql查询和突变做的是相同的事情,但在执行解析器的方式上有所不同 有关以下查询:
{
user {
name
}
posts {
title
}
}
GraphQL实现可以按照其认为最佳的顺序自由执行字段条目
对于以下突变:
{
createUser(name: $String) {
id
}
addPost(title: $String) {
id
}
}
GraphQL实现将按顺序执行每个变异
从这一点来看,突变关键字只是说“嘿,这是要编辑或创建一些东西”的一点语法。我认为在您的情况下,执行查询并将事件存储在审计日志中是一个更好的决定。公开查询存储审核日志这一事实是一个特定于实现的细节&客户端不应该知道这一点 从概念上讲,Graphql查询和突变做的是相同的事情,但在执行解析器的方式上有所不同 有关以下查询:
{
user {
name
}
posts {
title
}
}
GraphQL实现可以按照其认为最佳的顺序自由执行字段条目
对于以下突变:
{
createUser(name: $String) {
id
}
addPost(title: $String) {
id
}
}
GraphQL实现将按顺序执行每个变异
从这一点来看,突变关键字只是说“嘿,这是要编辑或创建一些东西”的一点语法。我认为在您的情况下,执行查询并将事件存储在审计日志中是一个更好的决定。公开查询存储审核日志这一事实是一个特定于实现的细节&客户端不应该知道这一点 这是有道理的。突变更多的是针对客户端数据创建/编辑内容。那么,像日志记录和保存这样的副作用应该没问题。谢谢!虽然这两个操作之间的差异主要是概念上的,但实际上它们在执行方式上存在差异。变异根类型的字段将按顺序解析,而任何其他类型的字段(包括查询根类型)将并行解析。如果您在一个操作中有多个变异字段,这将确保执行顺序。@DanielRearden嘿,谢谢您的输入,您有对它的引用吗?我会更新我的answer@DanStarns请参阅规范和。这很有意义。突变更多的是针对客户端数据创建/编辑内容。那么,像日志记录和保存这样的副作用应该没问题。谢谢!虽然这两个操作之间的差异主要是概念上的,但实际上它们在执行方式上存在差异。变异根类型的字段将按顺序解析,而任何其他类型的字段(包括查询根类型)将并行解析。如果您在一个操作中有多个变异字段,这将确保执行顺序。@DanielRearden嘿,谢谢您的输入,您有对它的引用吗?我会更新我的answer@DanStarns请参阅规范和。