解析器除了解析类型之外还可以有副作用吗?

时间:2019-08-16 21:56:28

标签: graphql

创建GraphQL突变或查询时,通常会检索或保存数据。但是,让我们假设我想在保存数据时发送电子邮件或执行一些其他副作用。

解析器是否会出现此类副作用是常见的做法?由于解析器仅应根据SOLID原理解析数据,对吧?

如果事实证明解析器不应该具有此类副作用,那么副作用将属于何处?

大多数在线教程和文章,包括GraphQL本身的官方教程,似乎都没有涵盖或考虑到这一点。

非常感谢!

1 个答案:

答案 0 :(得分:1)

这取决于解析器正在解析哪种类型的字段。

如果要解决根突变的字段,则它必须具有副作用,因为突变应该修改服务器端数据。因此,可以在根突变字段的解析器中发送电子邮件。

对于对象类型和根查询字段的解析器,由于它只能检索数据,因此如果它们有任何副作用,这对我来说很尴尬。