通常,查询是指获取数据,而变异是指操作数据时。但是如何在没有任何参数的情况下实现变异呢?
在我的特定情况下,我删除并创建2fa令牌端点。 delete和create令牌都没有参数,因为它们依赖于登录的用户ID。它们要么破坏,要么在数据库中创建记录。所以我宁愿他们是突变。但那是不可能的?
我正在使用Graphql-Ruby。但这更像是一般的Graphql问题。
修改
事实证明我错了。我无法找到有关它的任何信息,所以我只是认为它是不可能的。我希望这有助于其他人。在Graphql-Ruby中,你可以这样做:
mutation {
createFoo(input: {})
}
答案 0 :(得分:5)
如果一个mutation没有声明任何参数,它必须看起来像这样:
mutation {
createFoo : Payload
}
所以你绝对不能写括号。
答案 1 :(得分:2)
GraphQL spec中没有任何内容特别需要一个或多个突变参数。就参数而言,query
或mutation
都没有什么特别之处 - 它们本身都是字段,因此可以接受(或不接受)任何其他字段的参数。来自规范:
输入(例如字段参数)默认情况下始终是可选的。 但是,需要非空输入类型。除了没有 接受值null,它也不接受遗漏。为了 简单性可空类型始终是可选的,非空的 总是需要类型。
换句话说, 拥有参数的唯一时间是在模式和中定义一个参数时,它是非空的。
答案 2 :(得分:0)
使用 React 中的 graphql-request 包,您可以:
const query = gql`
query {
queryName {
someProperty
}
}
`