对于我的GraphQL应用程序,我想保存某些已解析字段的日志。因为用户可以自己查看这些日志,所以应该将其视为突变而不是查询的一部分吗?
由于不是应用程序的重点,所以我认为使用突变是过大的,但是我不确定通过这种方式进行建模是否会产生某种副作用。
>我读过的其他问题并未真正回答这个问题,对不起,如果它看起来像重复的话。
答案 0 :(得分:2)
从概念上讲,Graphql查询和变异执行相同的操作,但是执行解析程序的方式不同。
对于以下查询:
{
user {
name
}
posts {
title
}
}
GraphQL实现可以自由选择以最佳顺序执行字段条目。 see here。
对于以下突变:
{
createUser(name: $String) {
id
}
addPost(title: $String) {
id
}
}
GraphQL实现将依次执行每个Mutation。 see here
用这个来解释,Mutation关键字只是语法上的一句话,“嘿,这将要编辑或创建一些东西”。我认为,就您而言,执行查询并将事件存储在审核日志中是一个更好的决定。暴露查询存储审计日志这一事实是特定于实现的详细信息,客户不应该知道。