AWS AppSync s proljetnim pokretanjem

1. Uvod

U ovom ćemo članku istražiti AWS AppSync s Spring Boot. AWS AppSync potpuno je upravljana GraphQL usluga na razini poduzeća sa sinkronizacijom podataka u stvarnom vremenu i značajkama izvanmrežnog programiranja.

2. Postavite AWS AppSync

Prvo, moramo imati aktivan AWS račun. Kad se to pobrine, AppSync možemo potražiti s AWS konzole. Zatim ćemo kliknuti na Početak rada s AppSyncom veza.

2.1. Izradite AppSync API

Slijedeći upute za brzi početak za izradu našeg API-ja, koristit ćemo App za događaje ogledni projekt. Zatim kliknite Početak za imenovanje i stvaranje aplikacije:

Ovo će nas dovesti do naše konzole za aplikacije AppSync. Sada ćemo pogledati naš GraphQL model.

2.2. Model događaja GraphQL

GraphQL koristi shemu da definira koji su podaci dostupni klijentima i kako komunicirati s GraphQL poslužiteljem. Shema sadrži upite, mutacije i razne deklarirane tipove.

Radi jednostavnosti, pogledajmo dio zadane AWS AppSync GraphQL sheme, naše Događaj model:

upišite Event {id: ID! ime: String gdje: Niz kada: Opis niza: Niz # Paginiraj kroz sve komentare koji pripadaju pojedinom postu. komentari (ograničenje: Int, nextToken: String): CommentConnection}

Događaj je deklarirani tip s nekima Niz polja i a CommentConnection tip. Obratite pažnju na uskličnik na iskaznica polje. To znači da je to obavezno / ne-null polje.

To bi trebalo biti dovoljno za razumijevanje osnova naše sheme. Međutim, za više informacija idite na web mjesto GraphQL.

3. Proljetna čizma

Sad kad smo postavili sve na AWS strani, pogledajmo našu klijentsku aplikaciju Spring Boot.

3.1. Ovisnosti Mavena

Da bismo pristupili našem API-ju, za pristup ćemo koristiti knjižnicu Spring Boot Starter WebFlux WebClient, Proljetna nova alternativa za RestTemplate:

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

Pogledajte naš članak na WebClient za više informacija.

3.2. Klijent GraphQL

Da bismo uputili zahtjev našem API-u, započet ćemo s izradom našeg RequestBodySpec koristiti WebClient graditelj, pružanje AWS AppSync API URL-a i API ključa:

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

Ne zaboravite zaglavlje API ključa, x-api-ključ. API ključ provjerava autentičnost naše aplikacije AppSync.

4. Rad s GraphQL vrstama

4.1. Upiti

Postavljanje našeg upita uključuje njegovo dodavanje u upit element u tijelu poruke:

Map requestBody = novi HashMap (); requestBody.put ("query", "query ListEvents {" + "listEvents {" + "items {" + "id" + "name" + "where" + "when" + "description" + "}" + "} "+"} ");

Koristeći naš requestBody, zazovimo svoje WebClient za dohvaćanje tijela odgovora:

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

Napokon, možemo dobiti tijelo kao Niz:

Niz bodyString = response.bodyToMono (String.class) .block (); assertNotNull (bodyString); assertTrue (bodyString.contains ("Moj prvi događaj"));

4.2. Mutacije

GraphQL omogućuje ažuriranje i brisanje podataka korištenjem mutacija. Mutacije prema potrebi modificiraju podatke na strani poslužitelja i slijede sličnu sintaksu upita.

Dodajmo novi događaj s dodati upit za mutaciju:

String queryString = "mutation add {" + "createEvent (" + "name: \" My added GraphQL event \ "" + "where: \" Day 2 \ "" + "when: \" Saturday night \ "" + " opis: \ "Proučavanje GraphQL-a \" "+") {"+" id "+" ime "+" opis "+"} "+"} "; requestBody.put ("upit", queryString);

Jedna od najvećih prednosti AppSynca i GraphQL-a općenito jest ta što jedan krajnji URL pruža svu CRUD funkcionalnost u cijeloj shemi.

Isto možemo ponovno upotrijebiti WebClient za dodavanje, ažuriranje i brisanje podataka. Jednostavno ćemo dobiti novi odgovor na temelju povratnog poziva u upitu ili mutaciji.

assertNotNull (bodyString); assertTrue (bodyString.contains ("Moj dodani GraphQL događaj")); assertFalse (bodyString.contains ("where"));

5. Zaključak

U ovom smo članku pogledali koliko brzo možemo postaviti aplikaciju GraphQL s AWS AppSync i pristupiti joj s klijentom Spring Boot.

AppSync pruža programerima snažan GraphQL API kroz jednu krajnju točku. Za više informacija pogledajte naš vodič o stvaranju GraphQL Spring Boot poslužitelja.

Kao i uvijek, kôd je dostupan na GitHub-u.


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