[英]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 執行查詢。 對於已經在模式中定義的查詢,我在發布請求正文中輸入如下
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 中測試這一點的憑據。 我只能通過代碼來測試它。
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。 完成后,選擇 JSON。 您的 GraphQL 查詢將自動轉換為 JSON 查詢格式。
感謝視頻中提供的幫助: https ://youtu.be/AaD03fv6q-o。 只為像我一樣需要幫助的人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.