【问题标题】:Apollo/GraphQL actions that are neither mutations nor queries既不是突变也不是查询的 Apollo/GraphQL 动作
【发布时间】:2019-11-20 01:07:46
【问题描述】:

有时您需要 API 来执行不涉及检索或操作数据的操作。例如,发送“忘记密码”电子邮件或与第三方 API 交互。

Apollo(或 GraphQL 本身)是否有推荐的方法来实现这一点?

如果不是,有哪些解决方案可以在实现这一目标的同时仍然利用 Apollo 的优势(例如架构/类型检查)?

【问题讨论】:

    标签: graphql apollo apollo-server


    【解决方案1】:

    查询和突变之间的区别是mostly academic。虽然规范将突变定义为“先写后取”,但您可以将查询视为idempotent and side-effect free,而突变是任何东西,嗯,不是。从这个意义上说,密码重置请求可能不会更改数据库中的任何内容,但它肯定不会没有副作用,因此应该是一种突变。

    根据经验,任何可以被描述为操作(“create”、“update”、“reset”、“send”等)的东西都应该是一个mutation。这也影响到客户端的使用,因为许多客户端(即 Apollo)期望突变的使用方式与客户端查询不同。

    【讨论】:

      猜你喜欢
      • 2018-11-02
      • 2022-10-18
      • 2020-11-04
      • 2022-01-13
      • 2022-01-12
      • 1970-01-01
      • 2021-07-05
      • 2018-03-02
      • 2018-11-10
      相关资源
      最近更新 更多