【问题标题】:Is it okay for a resolver to have side effects besides resolving the type?除了解析类型之外,解析器是否可以产生副作用?
【发布时间】:2019-08-18 03:06:53
【问题描述】:

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

解析器有这种副作用是常见的做法吗?既然解析器应该只根据 SOLID 原则解析数据,对吧?

如果解析器不应该有这样的副作用,那么副作用应该属于哪里?

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

非常感谢!

【问题讨论】:

    标签: graphql


    【解决方案1】:

    这取决于解析器正在解析什么类型的字段。

    如果它正在解析根突变的字段,它必须涉及副作用,因为突变应该修改服务器端数据。因此,可以在 root mutation field 的解析器中发送电子邮件。

    对于对象类型和根查询字段的解析器,因为它应该只是检索数据,如果它们有任何副作用,我会很尴尬。

    【讨论】:

    • 再次感谢您的澄清!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 2013-09-14
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多