AWS AppSync עם אתחול האביב

1. הקדמה

במאמר זה נחקור את AWS AppSync עם Spring Boot. AWS AppSync הוא שירות מנוהל לחלוטין ברמת הארגון ברמת הארגון עם סנכרון נתונים בזמן אמת ותכנות תכנות לא מקוונות..

2. הגדר את AWS AppSync

ראשית, עלינו להיות בעלי חשבון AWS פעיל. לאחר הטיפול בזה, אנו יכולים לחפש AppSync ממסוף AWS. ואז נלחץ על תחילת העבודה עם AppSync קישור.

2.1. צור API של AppSync

בהתאם להוראות ההתחלה המהירה ליצירת ה- API שלנו, נשתמש ב- אפליקציית אירוע פרויקט לדוגמא. ואז לחץ הַתחָלָה למתן שם וליצירת האפליקציה:

זה יביא אותנו למסוף האפליקציות AppSync שלנו. עכשיו בואו נסתכל על מודל GraphQL שלנו.

2.2. מודל אירוע GraphQL

GraphQL משתמש בסכמה כדי להגדיר אילו נתונים זמינים ללקוחות וכיצד ליצור אינטראקציה עם שרת GraphQL. הסכימה מכילה שאילתות, מוטציות ומגוון סוגים מוצהרים.

לשם פשטות, בואו נסתכל על חלק מסכמת ברירת המחדל של AWS AppSync GraphQL, שלנו מִקרֶה דֶגֶם:

הקלד אירוע {id: ID! שם: מחרוזת איפה: מחרוזת מתי: תיאור מחרוזת: מחרוזת # עמוד בין כל ההערות השייכות לפוסט בודד. הערות (limit: Int, nextToken: String): CommentConnection}

מִקרֶה הוא טיפוס מוצהר עם כמה חוּט שדות ו חיבור תגובה סוּג. שימו לב לנקודת הקריאה על תְעוּדַת זֶהוּת שדה. פירוש הדבר שמדובר בשדה חובה / שאינו אפס.

זה אמור להספיק כדי להבין את היסודות של הסכימה שלנו. עם זאת, למידע נוסף, עבור אל אתר GraphQL.

3. מגף אביב

עכשיו, לאחר שהגדרנו הכל בצד AWS, בואו נסתכל על יישום הלקוח Spring Boot שלנו.

3.1. תלות Maven

כדי לגשת לממשק ה- API שלנו, נשתמש בספריית Spring Boot Starter WebFlux לגישה WebClient, החלופה החדשה של אביב ל RestTemplate:

  org.springframework.boot spring-boot-starter-webflux 

עיין במאמר שלנו בנושא WebClient למידע נוסף.

3.2. לקוח GraphQL

כדי להגיש בקשה לממשק ה- API שלנו, נתחיל ביצירת ה- RequestBodySpec משתמש ב WebClient בּוֹנֶה, מתן כתובת ה- AWS AppSync API ומפתח ה- API:

WebClient.RequestBodySpec requestBodySpec = WebClient. Builder () .baseUrl (apiUrl) .defaultHeader ("x-api-key", apiKey) .build () .method (HttpMethod.POST) .uri ("/ graphql");

אל תשכח את כותרת מפתח ה- API, x-api-key. מפתח ה- API מאומת לאפליקציית AppSync שלנו.

4. עבודה עם סוגי GraphQL

4.1. שאילתות

הגדרת השאילתה שלנו כוללת הוספה לא שאילתא אלמנט בגוף ההודעה:

Map requestBody = HashMap חדש (); requestBody.put ("query", "query ListEvents {" + "listEvents {" + "items {" + "id" + "name" + "where" + "when" + "תיאור" + "}" + "} "+"} ");

באמצעות שלנו בקשה גוף, בואו נקרא את שלנו WebClient כדי לאחזר את גוף התגובה:

WebClient.ResponseSpec response = requestBodySpec .body (BodyInserters.fromValue (requestBody)). Accept (MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML) .acceptCharset (StandardCharsets.UTF_8). Retrieve (); 

לבסוף, אנו יכולים להשיג את הגוף כ- חוּט:

מחרוזת bodyString = response.bodyToMono (String.class) .block (); assertNotNull (bodyString); assertTrue (bodyString.contains ("האירוע הראשון שלי"));

4.2. מוטציות

GraphQL מאפשר עדכון ומחיקה של נתונים באמצעות מוטציות. מוטציות משנות את הנתונים בצד השרת לפי הצורך ועוקבים אחר תחביר דומה לשאילתות.

בואו נוסיף אירוע חדש עם לְהוֹסִיף שאילתת מוטציה:

מחרוזת queryString = "מוטציה הוסף {" + "createEvent (" + "שם: \" אירוע GraphQL שנוסף שלי \ "" + "איפה: \" יום 2 \ "" + "מתי: \" מוצאי שבת \ "" + " תיאור: \ "לימוד GraphQL \" "+") {"+" מזהה "+" שם "+" תיאור "+"} "+"} "; requestBody.put ("query", queryString);

אחד היתרונות הגדולים ביותר של AppSync, ושל GraphQL בכלל, הוא שכתובת אתר של נקודת קצה אחת מספקת את כל הפונקציונליות של CRUD בכל הסכימה.

אנחנו יכולים לעשות בו שימוש חוזר WebClient כדי להוסיף, לעדכן ולמחוק נתונים. אנו פשוט נקבל תגובה חדשה על בסיס החזרה החוזרת בשאילתה או במוטציה.

assertNotNull (bodyString); assertTrue (bodyString.contains ("אירוע GraphQL שנוסף שלי")); assertFalse (bodyString.contains ("איפה"));

5. מסקנה

במאמר זה בדקנו באיזו מהירות אנו יכולים להקים אפליקציית GraphQL עם AWS AppSync ולגשת אליה באמצעות לקוח Spring Boot.

AppSync מספק למפתחים ממשק API גרפי רב עוצמה באמצעות נקודת קצה אחת. למידע נוסף, עיין בהדרכה שלנו ליצירת שרת אתחול GraphQL Spring.

וכמו תמיד, הקוד זמין ב- GitHub.


$config[zx-auto] not found$config[zx-overlay] not found