代码之家  ›  专栏  ›  技术社区  ›  dan-klasson

无参数Graphql突变

  •  16
  • dan-klasson  · 技术社区  · 6 年前

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

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

    我使用的是Graphql Ruby。但这更像是一个一般的Graphql问题。

    编辑:

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

    mutation {
      createFoo(input: {})
    }
    
    3 回复  |  直到 6 年前
        1
  •  13
  •   Andrei    3 年前

    如果突变没有声明任何参数,则它必须按以下方式显示:

    mutation {
      createFoo : Payload
    }
    

    所以你必须完全不要写括号。

        2
  •  8
  •   Daniel Rearden    6 年前

    里面什么都没有 GraphQL spec 这特别需要一个或多个突变参数。就论点而言,两者都没有什么特别之处 query mutation --它们本身都是字段,因此可以像任何其他字段一样接受(或不接受)参数。根据规范:

    默认情况下,输入(如字段参数)始终是可选的。 但是,需要非Null输入类型。除了不 接受值null,也不接受省略。对于 为简单起见,可空类型始终是可选的和非空的 类型始终是必需的。

    换句话说,你 有参数是指在模式中定义参数时 它是非空的。

        3
  •  1
  •   Oscar Velandia    3 年前

    使用React中的graphql请求包,您可以执行以下操作:

    const query = gql`
      query {
        queryName {
          someProperty
        }
      }
    `
    
    推荐文章