AWS AppSync s jarným spustením

1. Úvod

V tomto článku sa budeme venovať AWS AppSync s Spring Boot. AWS AppSync je plne spravovaná služba GraphQL na podnikovej úrovni so synchronizáciou údajov v reálnom čase a funkciami offline programovania..

2. Nastavte AWS AppSync

Najskôr musíme mať aktívny účet AWS. Keď je o to postarané, môžeme vyhľadať AppSync z konzoly AWS. Potom klikneme na ikonu Začíname s AppSync odkaz.

2.1. Vytvorte rozhranie AppSync API

Podľa pokynov na rýchle vytvorenie nášho API použijeme Aplikácia udalosti vzorový projekt. Potom kliknite Štart pomenovať a vytvoriť aplikáciu:

Dostanete sa tak do našej konzoly aplikácie AppSync. Teraz sa pozrime na náš model GraphQL.

2.2. Model udalosti GraphQL

GraphQL používa schému na definovanie toho, aké údaje sú k dispozícii klientom a ako interagovať so serverom GraphQL. Schéma obsahuje dotazy, mutácie a rôzne deklarované typy.

Pre jednoduchosť sa pozrime na časť predvolenej schémy AWS AppSync GraphQL, našu Udalosť Model:

typ Udalosť {id: ID! name: String where: String when: String description: String # Stránkovať všetky komentáre patriace k jednotlivému príspevku. komentáre (limit: Int, nextToken: String): CommentConnection}

Udalosť je deklarovaný typ s niektorými String polia a a Pripojenie komentárov typu. Všimnite si výkričník na ID lúka. To znamená, že ide o povinné / nenulové pole.

To by malo stačiť na pochopenie základov našej schémy. Pre viac informácií však choďte na stránku GraphQL.

3. Jarná topánka

Teraz, keď sme nastavili všetko na strane AWS, pozrime sa na našu klientsku aplikáciu Spring Boot.

3.1. Maven závislosti

Na prístup k nášmu API budeme na prístup používať knižnicu Spring Boot Starter WebFlux Webový klient, Jarná nová alternatíva k RestTemplate:

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

Pozrite sa na náš článok o Webový klient Pre viac informácií.

3.2. GraphQL klient

Ak chcete požiadať o naše API, začneme vytvorením nášho RequestBodySpec pomocou Webový klient staviteľ, poskytnutie adresy URL a kľúča API AWS AppSync API:

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

Nezabudnite na hlavičku kľúča API, x-api-key. Kľúč API sa autentifikuje do našej aplikácie AppSync.

4. Práca s typmi GraphQL

4.1. Dotazy

Nastavenie nášho dopytu zahŕňa jeho pridanie do a dopyt prvok v tele správy:

Map requestBody = nový HashMap (); requestBody.put ("dopyt", "dopyt ListEvents {" + "listEvents {" + "položky {" + "id" + "meno" + "kde" + "keď" + "popis" + "}" + "} „+“} “);

Pomocou nášho requestBody, poďme sa dovolávať našich Webový klient na získanie tela odpovede:

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

Nakoniec môžeme získať telo ako a String:

String bodyString = response.bodyToMono (String.class) .block (); assertNotNull (bodyString); assertTrue (bodyString.contains ("Moja prvá udalosť"));

4.2. Mutácie

GraphQL umožňuje aktualizáciu a mazanie údajov pomocou mutácií. Mutácie podľa potreby upravujú údaje na strane servera a sledujú podobnú syntax ako dotazy.

Pridajme novú udalosť s pridať mutačný dotaz:

Reťazec queryString = "mutácia pridať {" + "createEvent (" + "meno: \" Moja pridaná udalosť GraphQL \ "" + "kde: \" Deň 2 \ "" + "kedy: \" Sobotňajšia noc \ "" + " description: \ "Štúdium GraphQL \" "+") {"+" id "+" name "+" description "+"} "+"} "; requestBody.put ("dotaz", queryString);

Jednou z najväčších výhod AppSync a GraphQL všeobecne je, že jedna adresa URL koncového bodu poskytuje všetky funkcie CRUD v celej schéme.

To isté môžeme opätovne použiť Webový klient na pridanie, aktualizáciu a odstránenie údajov. Jednoducho dostaneme novú odpoveď na základe spätného volania v dotaze alebo mutácii.

assertNotNull (bodyString); assertTrue (bodyString.contains ("Moja pridaná udalosť GraphQL")); assertFalse (bodyString.contains ("kde"));

5. Záver

V tomto článku sme sa pozreli na to, ako rýchlo dokážeme nastaviť aplikáciu GraphQL s AWS AppSync a pristupovať k nej pomocou klienta Spring Boot.

AppSync poskytuje vývojárom výkonné rozhranie GraphQL API prostredníctvom jedného koncového bodu. Ďalšie informácie nájdete v našom výučbe vytvorenia servera GraphQL Spring Boot.

A ako vždy je kód k dispozícii na stránkach GitHub.


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