具有数组类型的Graphql突变

问题描述 投票:-2回答:1

我正在尝试编写一个变异查询,它与graphql完美配合使用

mutation{NewProject(project: {    
  name:"projet",
  namespace:"projet",
  environments:[{env:"env1"},{ env:"env2"}]
}) {   
     name,
    namespace,
    environments{
      env,
    }
}}

现在我正在尝试使用Apollo Client建立这种突变,如

    createProject() {    
    this.apollo.mutate({
      mutation: gql`
      mutation($name: String, $namespace: String, $env: Any) {NewProject(project: {
      name:$name,
      namespace:$namespace,
      environments:$env
      }) {
      name,
      namespace,
      environments{
      env,      
    }
}}
    `,
      variables: {
        name: this.name,
        namespace: this.namespace,
        env: [{
          env:"env1"
        },{ env:"env2"}] 

      }
    }).subscribe(data => {
      console.log('New project created!', data);
    });  }

但是由于数组类型的变量$ env,我收到了Http错误响应。感谢您的帮助。

angular graphql symfony4 apollo-client graphiql
1个回答
0
投票

[NewProject(project:显示您的NewProject突变需要一个project参数

将查询更改为

mutation($project: YourInputType) {
  NewProject(project: $project) {
    name,
    namespace,
    environments{
      env,      
    }

并将一个完整的对象传递给变量project

使用query variables中的graphiql定义测试变量:

{ 
  project: {
    name: "sth",
    namespace: "sth2",
    env: [
      {env:"env1"},
      {env:"env2"}
    ]
  } 
}

然后在客户端中为project变量准备相同类型的对象(当然,其结构与您的突变输入类型匹配)。>>

© www.soinside.com 2019 - 2024. All rights reserved.