更换一个灯泡需要多少次 GraphQL 突变?

问题描述

我的意思是,真的。多少?

  • 1? changeTheLightBulb()
  • 还是2? removeTheLightBulb() + addNewLightBulb()

解决方法

这完全取决于您是否将此操作视为原子操作。虽然 GraphQL 规范对此没有任何具体限制,但有一点很清楚:如果您不想将“无灯泡”作为有效状态,则您应该只使用一个突变 - 在您的情况下,changeLightBulb() .

另请注意,在您的突变集中同时包含 addLightBulbremoveLightBulbchangeLightBulb 是完全正确的。虽然您可能会尝试尽可能多地重用特定于域的 类型(再一次,重用通用片段有一些注意事项,在 this article 中已充分介绍),重用 仅仅为了最小化代码表面的操作通常不是一个好主意。