0

这是我的架构

type Mutation{
createUser(username: String!, email: String!, tempPassword: String!): ComplexCallResult
        @aws_iam
}

我正在使用 AmazoneWebServicesClient 执行查询。对于已经在模式中定义的查询,我在发布请求正文中输入如下

  private String queryAllUsers = "{\n" +
            "    \"query\": \"{listUsers {name}}\",\n" +
            "    \"variables\": null,\n" +
            "    \"operationsName\": null\n" +
            "}";

现在我想运行类似于上面的突变。我的输入查询是

{ "mutation":"{createUser(email: "test@lb.de", tempPassword: "LPwd!", username: "testUser1") { Exception Success}}" }

在 Java 代码中:

  private String testCreateUserInputQuery= "{\n" +
            "    \"mutation\":\"{createUser(email: \\\"test@lb.de\\\", tempPassword: \\\"LPwd!\\\", username: \\\"testUser10\\\") {  Exception  Success}}\"\n" +
            "}";

但这不起作用。请提供任何线索

编辑:我正在更新我在这里所做的事情:

这是我最新的尝试,但不起作用。

private String testCreateUserInputQuery= "{\n" +
            "    \"query\":\"{mutation($username:String!,$email:String!,$tempPassword:String!) {createUser(username:$username,email:$email,tempPassword:$tempPassword) { Exception  Success }}}\", \"variables\":{\"input\":{\"username\":\"testUser11\",\"email\":\"test@lb.de\",\"tempPassword\":\"L123!\"  }  }\n" +
            "    }";

也试过这样:

  private String testCreateUserInputQuery= "{\n" +
            "    \"query\":\"{mutation createUser($username:String!,$email:String!,$tempPassword:String!) {createUser(username:$username,email:$email,tempPassword:$tempPassword) { Exception  Success }}}\", \"variables\":{\"input\":{\"username\":\"testUser11\",\"email\":\"test@lb.de\",\"tempPassword\":\"L123!\"  }  }\n" +
            "    }";

我收到如下异常

{"errors":[{"message":"Unable to parse GraphQL query.","errorType":"MalformedHttpRequestException"}]} (Service: appsync; Status Code: 400; Error Code: MalformedHttpRequestException; Request ID: af42c6eb-dd5f-401e-9cac-530e9c62df71; Proxy: null)

无法找到错误所在,也没有任何线索。我已经筋疲力尽了。

无法使用 Postman 或 Insomnia 来试用此 API,因为这是我的组织的工作,并且该 API 由 AWS IAM 保护。我还没有获得在 Postman 或 Insomnia 中测试这一点的凭据。我只能通过代码来测试它。

4

2 回答 2

0
private String testCreateUserInputQuery=" {\n" +
            "    \"query\":\"mutation { createUser(username: \\\"testUser12\\\",email:\\\"test@lb.de\\\",tempPassword:\\\"tempPassword123!\\\") { Exception  Success }}\"\n" +
            "    }";

对于使用变量的查询,以下一个对我有用

private String testCreateUserInputQuery= "{\n" + " \"query\":\"mutation User($uname: String!,$mail:String!,$tempPwd:String!) { createUser(username: $uname,email:$mail,tempPassword:$tempPwd) { Exception Success }}\", \"variables\":{\"uname\":\"testUser20SK\",\"mail\":\"test@lb.de\",\"tempPwd\":\"LPassword123!\"} \n" + " }";
于 2021-07-21T13:12:45.823 回答
0

我不得不不必要地挣扎来做这个手术。Insomnia 工具会自动将 GraphQL 查询转换为 JSON 查询。复制并粘贴或编写您的 GraphQL 查询,保持输入模式格式为 GraphQL。完成后,选择 JSON。您的 GraphQL 查询将自动转换为 JSON 查询格式。

于 2022-01-26T10:23:15.657 回答