没有参数的 Graphql 突变

dan*_*son 12 graphql graphql-ruby

通常查询是在您获取数据时,而变异是在您操作数据时。但是我将如何在没有任何参数的情况下实现突变?

在我的特殊情况下,我删除并创建了 2fa 令牌端点。delete 和 create 令牌都没有参数,因为它们依赖于登录的用户 ID。它们都在数据库中销毁或创建记录。所以我宁愿它们是突变。但这不可能吗?

我正在使用 Graphql-Ruby。但这更像是一个通用的 Graphql 问题。

编辑:

结果我错了。我找不到任何关于它的信息,所以我只是假设这是不可能的。我希望这对其他人有帮助。在 Graphql-Ruby 中,您可以执行以下操作:

mutation {
  createFoo(input: {})
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*den 8

GraphQL 规范中没有任何内容特别需要一个或多个参数来进行突变。在参数方面,有没有什么特别的或者querymutation-他们是这两个领域本身,因此可以接受(或没有)像任何其他领域的论据。从规范:

默认情况下,输入(例如字段参数)始终是可选的。然而,非空输入类型是必需的。除了不接受 null 值,它也不接受遗漏。为简单起见,可空类型始终是可选的,而非空类型始终是必需的。

换句话说,唯一的一次,你必须有一个说法是,当一个在架构定义它的非空。


小智 6

如果一个突变没有声明任何参数,那么它必须看起来像这样:

mutation {
  createFoo : Payload
}
Run Code Online (Sandbox Code Playgroud)

所以你根本不能写括号。