AWS AppSync tavaszi indítással

1. Bemutatkozás

Ebben a cikkben az AWS AppSync programot tárjuk fel a Spring Boot alkalmazással. Az AWS AppSync egy teljesen felügyelt, vállalati szintű GraphQL szolgáltatás, valós idejű adatszinkronizálással és offline programozási funkciókkal..

2. Állítsa be az AWS AppSync alkalmazást

Először is rendelkeznünk kell egy aktív AWS-fiókkal. Amint erről gondoskodunk, megkereshetjük az AppSync alkalmazást az AWS konzolról. Akkor rákattintunk a gombra Az AppSync használatának megkezdése link.

2.1. Hozzon létre AppSync API-t

Az API létrehozásához szükséges gyors indítási utasításokat követve a következőt fogjuk használni Event App mintaprojekt. Ezután kattintson a gombra Rajt az alkalmazás megnevezéséhez és létrehozásához:

Ezzel eljutunk az AppSync alkalmazáskonzolunkhoz. Most vessünk egy pillantást a GraphQL modellünkre.

2.2. GraphQL eseménymodell

A GraphQL egy séma segítségével határozza meg, milyen adatok állnak az ügyfelek rendelkezésére, és hogyan kell együttműködni a GraphQL szerverrel. A séma lekérdezéseket, mutációkat és különféle deklarált típusokat tartalmaz.

Az egyszerűség kedvéért nézzük meg az alapértelmezett AWS AppSync GraphQL séma egy részét Esemény modell:

type esemény {id: ID! név: Karakterlánc hol: Karakterlánc mikor: Karaktersorozat leírása: Karakterlánc # Lapozzon át az egyes hozzászólásokhoz tartozó összes megjegyzésen. megjegyzések (korlát: Int, nextToken: String): CommentConnection}

Esemény deklarált típus néhány Húr mezők és a CommentConnection típus. Figyelje meg a felkiáltójelet a ID terület. Ez azt jelenti, hogy kötelező / nem null mező.

Ennek elégnek kell lennie a sémánk alapjainak megértéséhez. További információért azonban térjen át a GraphQL webhelyre.

3. Tavaszi bakancs

Most, hogy mindent beállítottunk az AWS oldalon, nézzük meg a Spring Boot kliens alkalmazást.

3.1. Maven-függőségek

API-junk eléréséhez a Spring Boot Starter WebFlux könyvtárat fogjuk használni a hozzáféréshez WebClient, A tavasz új alternatívája a RestTemplate:

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

Nézze meg cikkünket Web Ügyfél további információért.

3.2. GraphQL kliens

Ahhoz, hogy kérelmet nyújtsunk be az API-nkhoz, először az RequestBodySpec használni a Web Ügyfél építész, az AWS AppSync API URL és API kulcs megadása:

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

Ne felejtse el az API kulcs fejlécét, x-api-kulcs. Az API kulcs hitelesíti az AppSync alkalmazást.

4. Munka a GraphQL típusokkal

4.1. Lekérdezések

Lekérdezésünk beállításához hozzá kell adni a lekérdezés elem az üzenet törzsében:

Map requestBody = new HashMap (); requestBody.put ("lekérdezés", "lekérdezés ListEvents {" + "listEvents {" + "elemek {" + "id" + "név" + "ahol" + "amikor" + "leírás" + "}" + "} "+"} ");

A mi felhasználásával requestBody, hívjuk meg a mi Web Ügyfél a válasz törzsének lekérése:

WebClient.ResponseSpec válasz = requestBodySpec .body (BodyInserters.fromValue (requestBody)) .accept (MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML) .acceptCharset (StandardCharsets.UTF_8) .retrieve (); 

Végül megszerezhetjük a testet a Húr:

String bodyString = response.bodyToMono (String.osztály) .block (); assertNotNull (bodyString); assertTrue (bodyString.contains ("Első eseményem"));

4.2. Mutációk

A GraphQL lehetővé teszi az adatok frissítését és törlését mutációk használatával. A mutációk szükség szerint módosítják a szerveroldali adatokat, és a lekérdezésekhez hasonló szintaxist követnek.

Adjunk hozzá egy új eseményt egy hozzá mutációs lekérdezés:

Karaktersorozat queryString = "mutáció add {" + "createEvent (" + "név: \" Saját hozzáadott GraphQL esemény \ "" + "ahol: \" 2. nap \ "" + "mikor: \" szombat este \ "" + " leírás: \ "Studios GraphQL \" "+") {"+" id "+" name "+" description "+"} "+"} "; requestBody.put ("lekérdezés", queryString);

Az AppSync és általában a GraphQL egyik legnagyobb előnye, hogy egy végpont URL biztosítja az összes CRUD funkciót a teljes sémában.

Újra felhasználhatjuk ugyanezt Web Ügyfél adatok hozzáadásához, frissítéséhez és törléséhez. Egyszerűen új választ kapunk a lekérdezés vagy mutáció visszahívása alapján.

assertNotNull (bodyString); assertTrue (bodyString.contains ("Saját hozzáadott GraphQL esemény")); assertFalse (bodyString.contains ("hol"));

5. Következtetés

Ebben a cikkben megvizsgáltuk, milyen gyorsan állíthatunk be egy GraphQL alkalmazást az AWS AppSync segítségével, és egy Spring Boot kliens segítségével érhetjük el.

Az AppSync a fejlesztőknek egy erőteljes GraphQL API-t biztosít egyetlen végponton keresztül. További információért tekintse meg a GraphQL Spring Boot szerver létrehozásának oktatóanyagát.

És mint mindig, a kód elérhető a GitHubon.