如何在 Java 客户端代码中为 Graphql 执行突变?
How to execute a mutation for Graphql in a Java Client Code?
这是我的架构
type Mutation{
createUser(username: String!, email: String!, tempPassword: String!): ComplexCallResult
@aws_iam
}
我正在使用 AmazoneWebServicesClient 执行查询。对于已经在模式中定义的查询,我在 post 请求正文中输入如下
private String queryAllUsers = "{\n" +
" \"query\": \"{listUsers {name}}\",\n" +
" \"variables\": null,\n" +
" \"operationsName\": null\n" +
"}";
现在我想 运行 与上面类似的突变。我的输入查询是
{
“突变”:“{createUser(电子邮件:“test@lb.de”,tempPassword:“LPwd!”,用户名:“testUser1”){异常成功}}”
}
在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 中对此进行测试的证书。我只能通过代码来测试它。
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" + " }";
为了做这个手术,我不得不做不必要的挣扎。 Insomnia 工具自动将 GraphQL 查询转换为 JSON 查询。复制并粘贴或编写您的 GraphQL 查询,保持输入模式格式为 GraphQL。完成后,select JSON。您的 GraphQL 查询将自动转换为 JSON 查询格式。
感谢视频中提供的帮助:https://youtu.be/AaD03fv6q-o。只为像我一样需要帮助的人。
这是我的架构
type Mutation{
createUser(username: String!, email: String!, tempPassword: String!): ComplexCallResult
@aws_iam
}
我正在使用 AmazoneWebServicesClient 执行查询。对于已经在模式中定义的查询,我在 post 请求正文中输入如下
private String queryAllUsers = "{\n" +
" \"query\": \"{listUsers {name}}\",\n" +
" \"variables\": null,\n" +
" \"operationsName\": null\n" +
"}";
现在我想 运行 与上面类似的突变。我的输入查询是
{ “突变”:“{createUser(电子邮件:“test@lb.de”,tempPassword:“LPwd!”,用户名:“testUser1”){异常成功}}” }
在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 中对此进行测试的证书。我只能通过代码来测试它。
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" + " }";
为了做这个手术,我不得不做不必要的挣扎。 Insomnia 工具自动将 GraphQL 查询转换为 JSON 查询。复制并粘贴或编写您的 GraphQL 查询,保持输入模式格式为 GraphQL。完成后,select JSON。您的 GraphQL 查询将自动转换为 JSON 查询格式。
感谢视频中提供的帮助:https://youtu.be/AaD03fv6q-o。只为像我一样需要帮助的人。