From 0a230827f887869a05b9e61921e33eb51c8542ef Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 15 Jan 2023 20:50:18 +1100 Subject: [PATCH 01/18] Add sample application --- .gitignore | 2 + graphql-server/.gitignore | 37 +++ graphql-server/build.gradle | 25 ++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 60756 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + graphql-server/gradlew | 240 ++++++++++++++++++ graphql-server/gradlew.bat | 91 +++++++ graphql-server/settings.gradle | 1 + .../com/example/graphqlserver/Author.java | 17 ++ .../java/com/example/graphqlserver/Book.java | 17 ++ .../example/graphqlserver/BookController.java | 19 ++ .../GraphqlServerApplication.java | 13 + .../src/main/resources/application.properties | 1 + .../main/resources/graphql/schema.graphqls | 16 ++ .../GraphqlServerApplicationTests.java | 13 + 15 files changed, 497 insertions(+) create mode 100644 .gitignore create mode 100644 graphql-server/.gitignore create mode 100644 graphql-server/build.gradle create mode 100644 graphql-server/gradle/wrapper/gradle-wrapper.jar create mode 100644 graphql-server/gradle/wrapper/gradle-wrapper.properties create mode 100755 graphql-server/gradlew create mode 100644 graphql-server/gradlew.bat create mode 100644 graphql-server/settings.gradle create mode 100644 graphql-server/src/main/java/com/example/graphqlserver/Author.java create mode 100644 graphql-server/src/main/java/com/example/graphqlserver/Book.java create mode 100644 graphql-server/src/main/java/com/example/graphqlserver/BookController.java create mode 100644 graphql-server/src/main/java/com/example/graphqlserver/GraphqlServerApplication.java create mode 100644 graphql-server/src/main/resources/application.properties create mode 100644 graphql-server/src/main/resources/graphql/schema.graphqls create mode 100644 graphql-server/src/test/java/com/example/graphqlserver/GraphqlServerApplicationTests.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4befed3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +.idea diff --git a/graphql-server/.gitignore b/graphql-server/.gitignore new file mode 100644 index 0000000..c2065bc --- /dev/null +++ b/graphql-server/.gitignore @@ -0,0 +1,37 @@ +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ diff --git a/graphql-server/build.gradle b/graphql-server/build.gradle new file mode 100644 index 0000000..bf13e8e --- /dev/null +++ b/graphql-server/build.gradle @@ -0,0 +1,25 @@ +plugins { + id 'java' + id 'org.springframework.boot' version '3.0.1' + id 'io.spring.dependency-management' version '1.1.0' +} + +group = 'com.example' +version = '0.0.1-SNAPSHOT' +sourceCompatibility = '17' + +repositories { + mavenCentral() +} + +dependencies { + implementation 'org.springframework.boot:spring-boot-starter-graphql' + implementation 'org.springframework.boot:spring-boot-starter-web' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testImplementation 'org.springframework:spring-webflux' + testImplementation 'org.springframework.graphql:spring-graphql-test' +} + +tasks.named('test') { + useJUnitPlatform() +} diff --git a/graphql-server/gradle/wrapper/gradle-wrapper.jar b/graphql-server/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..249e5832f090a2944b7473328c07c9755baa3196 GIT binary patch literal 60756 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/graphql-server/gradlew.bat b/graphql-server/gradlew.bat new file mode 100644 index 0000000..53a6b23 --- /dev/null +++ b/graphql-server/gradlew.bat @@ -0,0 +1,91 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/graphql-server/settings.gradle b/graphql-server/settings.gradle new file mode 100644 index 0000000..f25b9a8 --- /dev/null +++ b/graphql-server/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'graphql-server' diff --git a/graphql-server/src/main/java/com/example/graphqlserver/Author.java b/graphql-server/src/main/java/com/example/graphqlserver/Author.java new file mode 100644 index 0000000..af15db6 --- /dev/null +++ b/graphql-server/src/main/java/com/example/graphqlserver/Author.java @@ -0,0 +1,17 @@ +package com.example.graphqlserver; + +import java.util.Arrays; +import java.util.List; + +public record Author (String id, String firstName, String lastName) { + + private static List authors = Arrays.asList( + new Author("author-1", "Joshua", "Bloch"), + new Author("author-2", "Douglas", "Adams"), + new Author("author-3", "Bill", "Bryson") + ); + + public static Author getById(String id) { + return authors.stream().filter(author -> author.id().equals(id)).findFirst().orElse(null); + } +} \ No newline at end of file diff --git a/graphql-server/src/main/java/com/example/graphqlserver/Book.java b/graphql-server/src/main/java/com/example/graphqlserver/Book.java new file mode 100644 index 0000000..d378b08 --- /dev/null +++ b/graphql-server/src/main/java/com/example/graphqlserver/Book.java @@ -0,0 +1,17 @@ +package com.example.graphqlserver; + +import java.util.Arrays; +import java.util.List; + +public record Book (String id, String name, int pageCount, String authorId) { + + private static List books = Arrays.asList( + new Book("book-1", "Effective Java", 416, "author-1"), + new Book("book-2", "Hitchhiker's Guide to the Galaxy", 208, "author-2"), + new Book("book-3", "Down Under", 436, "author-3") + ); + + public static Book getById(String id) { + return books.stream().filter(book -> book.id().equals(id)).findFirst().orElse(null); + } +} diff --git a/graphql-server/src/main/java/com/example/graphqlserver/BookController.java b/graphql-server/src/main/java/com/example/graphqlserver/BookController.java new file mode 100644 index 0000000..5b766bd --- /dev/null +++ b/graphql-server/src/main/java/com/example/graphqlserver/BookController.java @@ -0,0 +1,19 @@ +package com.example.graphqlserver; + +import org.springframework.graphql.data.method.annotation.Argument; +import org.springframework.graphql.data.method.annotation.QueryMapping; +import org.springframework.graphql.data.method.annotation.SchemaMapping; +import org.springframework.stereotype.Controller; + +@Controller +public class BookController { + @QueryMapping + public Book bookById(@Argument String id) { + return Book.getById(id); + } + + @SchemaMapping + public Author author(Book book) { + return Author.getById(book.authorId()); + } +} \ No newline at end of file diff --git a/graphql-server/src/main/java/com/example/graphqlserver/GraphqlServerApplication.java b/graphql-server/src/main/java/com/example/graphqlserver/GraphqlServerApplication.java new file mode 100644 index 0000000..f5875cf --- /dev/null +++ b/graphql-server/src/main/java/com/example/graphqlserver/GraphqlServerApplication.java @@ -0,0 +1,13 @@ +package com.example.graphqlserver; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class GraphqlServerApplication { + + public static void main(String[] args) { + SpringApplication.run(GraphqlServerApplication.class, args); + } + +} diff --git a/graphql-server/src/main/resources/application.properties b/graphql-server/src/main/resources/application.properties new file mode 100644 index 0000000..1bd50b3 --- /dev/null +++ b/graphql-server/src/main/resources/application.properties @@ -0,0 +1 @@ +spring.graphql.graphiql.enabled=true diff --git a/graphql-server/src/main/resources/graphql/schema.graphqls b/graphql-server/src/main/resources/graphql/schema.graphqls new file mode 100644 index 0000000..85bb6ad --- /dev/null +++ b/graphql-server/src/main/resources/graphql/schema.graphqls @@ -0,0 +1,16 @@ +type Query { + bookById(id: ID): Book +} + +type Book { + id: ID + name: String + pageCount: Int + author: Author +} + +type Author { + id: ID + firstName: String + lastName: String +} \ No newline at end of file diff --git a/graphql-server/src/test/java/com/example/graphqlserver/GraphqlServerApplicationTests.java b/graphql-server/src/test/java/com/example/graphqlserver/GraphqlServerApplicationTests.java new file mode 100644 index 0000000..530301b --- /dev/null +++ b/graphql-server/src/test/java/com/example/graphqlserver/GraphqlServerApplicationTests.java @@ -0,0 +1,13 @@ +package com.example.graphqlserver; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class GraphqlServerApplicationTests { + + @Test + void contextLoads() { + } + +} From 2d257621a05715366d9d774f98adb3c42c49b1eb Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 15 Jan 2023 20:50:33 +1100 Subject: [PATCH 02/18] Add tutorial adoc --- README.adoc | 325 ++++++++++++++++++++++++++++++++++++++++++++++++++- graphiql.png | Bin 0 -> 161145 bytes 2 files changed, 324 insertions(+), 1 deletion(-) create mode 100644 graphiql.png diff --git a/README.adoc b/README.adoc index 8c7ac28..066dcc7 100644 --- a/README.adoc +++ b/README.adoc @@ -1,2 +1,325 @@ += Building a GraphQL service with Spring for GraphQL -This guide... +https://docs.spring.io/spring-graphql/docs/current/reference/html/[Spring for GraphQL] provides support for Spring applications built on https://www.graphql-java.com/[GraphQL Java]. + +This guide walks you through the process of creating a GraphQL service in Java using Spring for GraphQL. + +== What You Will Build +You will build a service that will accept GraphQL requests at `http://localhost:8080/graphql`. + +== What You Need + +:java_version: 17 +include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/main/prereq_editor_jdk_buildtools.adoc[] + +include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/main/how_to_complete_this_guide.adoc[] + +[[scratch]] +== Starting with Spring Initializr + +To manually initialize the project: + +. Navigate to https://start.spring.io. +This service pulls in all the dependencies you need for an application and does most of the setup for you. +. Choose either Gradle or Maven and the language you want to use. This guide assumes that you chose Java. +. Choose Spring Boot 3.x +. Choose at least Java 17 (minimum requirement for Spring Boot 3.x) +. Click *Dependencies* and select *Spring for GraphQL* and *Spring Web*. +. Click *Generate*. +. Download the resulting ZIP file, which is an archive of a GraphQL application that is configured with your choices. + +NOTE: If your IDE has the Spring Initializr integration, you can complete this process from your IDE. + +NOTE: You can also fork the project from https://github.com/spring-guides/graphql-server[GitHub] and open it in your IDE or other editor. + +[[initial]] +== A very short introduction to GraphQL + +GraphQL is a query language to retrieve data from a server. +It is an alternative to REST, SOAP, or gRPC. + +In this tutorial, we will query the details for a specific book from an online store backend. + +This is how to send a GraphQL query to the server to retrieve details for the book with id "book-1": + +[,graphql] +---- +query bookDetails { + bookById(id: "book-1"){ + id + name + pageCount + author { + firstName + lastName + } + } +} +---- + +This GraphQL query says: + +* query a book with a specific id +* retrieve the id, name, pageCount and author from that book +* for the author, I want to know the firstName and lastName + +The response is JSON: + +[,json] +---- +{ + "bookById": { + "id":"book-1", + "name":"Effective Java", + "pageCount":416, + "author": { + "firstName":"Joshua", + "lastName":"Bloch" + } + } +} +---- + +An important feature of GraphQL is that it is statically typed. The server knows exactly the shape of every object you can query and any client can introspect the server and ask for the schema. +The schema describes what queries are possible and what fields you can get back. + +NOTE: The word schema in this tutorial refers to a "GraphQL Schema", which is not related to other schemas like "JSON Schema" or "Database Schema". + +The schema for the above query is: + +[,graphql] +---- +type Query { + bookById(id: ID): Book +} + +type Book { + id: ID + name: String + pageCount: Int + author: Author +} + +type Author { + id: ID + firstName: String + lastName: String +} +---- + +This tutorial will focus on how to implement a GraphQL server with this schema in Java. + +We've barely scratched the surface of what's possible with GraphQL. +Further information can be found on the https://graphql.org/learn/[official GraphQL page]. + +== Our example API: getting book details +The main steps of creating a https://docs.spring.io/spring-graphql/docs/current/reference/html/[Spring for GraphQL] service are: + +. Defining a GraphQL Schema +. Deciding on how the actual data for a query is fetched + +Our example app will be a simple API to get details for a specific book. It is not intended to be a comprehensive API. + +== Schema +In your Spring for GraphQL service you initialized earlier, create a directory `src/main/resources/graphql`. + +Add a new file `schema.graphqls` to `src/main/resources/graphql` with the following content: + +[,graphql] +---- +type Query { + bookById(id: ID): Book +} + +type Book { + id: ID + name: String + pageCount: Int + author: Author +} + +type Author { + id: ID + firstName: String + lastName: String +} +---- + +This schema defines one top level field (in the type `Query`): `bookById` which returns the details of a specific book. + +It also defines the type `Book` which has the fields: `id`, `name`, `pageCount` and `author`. +`author` is of type `Author`, which is defined after `Book`. + +NOTE: The Domain Specific Language used above to describe a schema is called the Schema Definition Language or SDL. See more details in the https://graphql.org/learn/schema/[GraphQL documentation]. + +== Source of the data + +A key strength of GraphQL is that data can be sourced from anywhere. Data can come from a database, an external service, or a static in-memory list. + +To simplify the tutorial, book and author data will come from static lists inside their respective classes. + +=== Create the Book class + +Add the following to `Book.java`. You choose where to save this file, it can be in the same directory as the class containing the `@SpringBootApplication` annotation. + +[,java] +---- +import java.util.Arrays; +import java.util.List; + +public record Book (String id, String name, int pageCount, String authorId) { + + private static List books = Arrays.asList( + new Book("book-1", "Effective Java", 416, "author-1"), + new Book("book-2", "Hitchhiker's Guide to the Galaxy", 208, "author-2"), + new Book("book-3", "Down Under", 436, "author-3") + ); + + public static Book getById(String id) { + return books.stream().filter(book -> book.id().equals(id)).findFirst().orElse(null); + } +} +---- + +=== Create the Author class + +Add the following to `Author.java`. Save it in the same directory as `Book.java`. + +[,java] +---- +import java.util.Arrays; +import java.util.List; + +public record Author (String id, String firstName, String lastName) { + + private static List authors = Arrays.asList( + new Author("author-1", "Joshua", "Bloch"), + new Author("author-2", "Douglas", "Adams"), + new Author("author-3", "Bill", "Bryson") + ); + + public static Author getById(String id) { + return authors.stream().filter(author -> author.id().equals(id)).findFirst().orElse(null); + } +} +---- + +== Adding code to fetch data + +Spring for GraphQL provides an https://docs.spring.io/spring-graphql/docs/current/reference/html/#controllers[annotation-based programming model] to declare handler methods to fetch the data for specific GraphQL fields. + +Add the following to `BookController.java`. You choose where to save this file, it can be in the same directory as the class containing the `@SpringBootApplication` annotation. + +[,java] +---- +import org.springframework.graphql.data.method.annotation.Argument; +import org.springframework.graphql.data.method.annotation.QueryMapping; +import org.springframework.graphql.data.method.annotation.SchemaMapping; +import org.springframework.stereotype.Controller; + +@Controller +public class BookController { + @QueryMapping + public Book bookById(@Argument String id) { + return Book.getById(id); + } + + @SchemaMapping + public Author author(Book book) { + return Author.getById(book.authorId()); + } +} +---- + +The `@QueryMapping` annotation binds this method to a query, a field under the Query type. +The query field is then determined from the method name, `bookById`. +The query field could also be declared on the annotation. +Spring for GraphQL uses `RuntimeWiring.Builder` to register the handler method as a `graphql.schema.DataFetcher` for the query field `bookById`. + +In the GraphQL Java engine, `DataFetchingEnvironment` provides access to a map of field-specific argument values. +Use the `@Argument` annotation to have an argument bound to a target object and injected into the handler method. +By default, the method parameter name is used to look up the argument. +The argument name can be specified in the annotation. + +The `@SchemaMapping` annotation maps a handler method to a field in the GraphQL schema and declares it to be the `DataFetcher` for that field. +The field name defaults to the method name, and the type name defaults to the simple class name of the source/parent object injected into the method. +In this example, the field defaults to `author` and the type defaults to `Book`. +The type and field can be specified in the annotation. + +For more, see the https://docs.spring.io/spring-graphql/docs/current/reference/html/#controllers[documentation for the Spring for GraphQL annotated controller feature]. + +That's all the code we need! + +Let's run our first query. + +== Running our first query + +=== Enable the GraphiQL Playground + +GraphiQL is a useful visual interface for writing and executing queries, and much more. +Enable GraphiQL by adding this config to the `application.properties` file. + +---- +spring.graphql.graphiql.enabled=true +---- + +=== Boot the application + +Start your Spring application. + +Navigate to http://localhost:8080/graphiql or your custom URL. + +=== Run the query + +Type in the query and hit the play button at the top of the window. + +[,graphql] +---- +query bookDetails { + bookById(id: "book-1") { + id + name + pageCount + author { + id + firstName + lastName + } + } +} +---- + +// dz todo: amend link with GitHub direct link +You should see a response like this. +image:/graphiQL.png[GraphQL response] + +Congratulations, you have built a GraphQL service and run your first query! With the help of Spring for GraphQL, you were able to achieve this with only a few lines of code. + +=== Testing +// dz todo: adding a few tests to verify this works + +See the https://docs.spring.io/spring-graphql/docs/current/reference/html/#testing[documentation] for more on testing in Spring for GraphQL. + +== Further reading + +=== Sample source code + +The source code for this tutorial can be found on https://github.com/spring-guides/graphql-server[GitHub]. + +=== Documentation + +Read the https://docs.spring.io/spring-graphql/docs/current/reference/html/[Spring for GraphQL documentation]. + +GraphQL Java is the GraphQL engine powering Spring for GraphQL. Read the https://www.graphql-java.com/documentation/getting-started[GraphQL Java documentation]. + +=== More Spring for GraphQL examples + +See more samples in the +https://github.com/spring-projects/spring-graphql/tree/1.0.x/samples[1.0.x branch], which will soon be https://github.com/spring-projects/spring-graphql/issues/208[moved into] a separate repository. + +=== Stack Overflow questions +You can raise questions on https://stackoverflow.com/questions/tagged/spring-graphql[Stack Overflow with the spring-graphql] tag. + +Want to write a new guide or contribute to an existing one? Check out our https://github.com/spring-guides/getting-started-guides/wiki[contribution guidelines]. + +All guides are released with an ASLv2 license for the code, and an https://creativecommons.org/licenses/by-nd/3.0/[Attribution, NoDerivatives creative commons license] for the writing. diff --git a/graphiql.png b/graphiql.png new file mode 100644 index 0000000000000000000000000000000000000000..24cce836d694fb6d08ffa59de94481be1f0b626f GIT binary patch literal 161145 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
n{rE4Y|nng*IAq6-Gr*YKuLWe=cqkn{uY06 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

$TtrW!<ha;o39aEc=8Y~at9X&RliJoqaV(uvG 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 xz5Rb)y=6a{ah__lNII}|uBB1?&Kmq Date: Sun, 22 Jan 2023 15:15:15 +1100 Subject: [PATCH 03/18] Update README.adoc Co-authored-by: Rossen Stoyanchev --- README.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index 066dcc7..116be48 100644 --- a/README.adoc +++ b/README.adoc @@ -234,7 +234,8 @@ public class BookController { The `@QueryMapping` annotation binds this method to a query, a field under the Query type. The query field is then determined from the method name, `bookById`. The query field could also be declared on the annotation. -Spring for GraphQL uses `RuntimeWiring.Builder` to register the handler method as a `graphql.schema.DataFetcher` for the query field `bookById`. + +NOTE: Spring for GraphQL uses `RuntimeWiring.Builder` that registers each such controller method as a GraphQL Java `graphql.schema.DataFetcher` that provides the logic to fetch the data for a query or for any schema field. The Spring Boot starter for GraphQL has auto-config that automates this registration. In the GraphQL Java engine, `DataFetchingEnvironment` provides access to a map of field-specific argument values. Use the `@Argument` annotation to have an argument bound to a target object and injected into the handler method. From e1aa39dd4a78d5c84a78f75627c7d8c2119c18ff Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 22 Jan 2023 15:21:33 +1100 Subject: [PATCH 04/18] Update README.adoc Co-authored-by: Rossen Stoyanchev --- README.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index 116be48..e6ce48f 100644 --- a/README.adoc +++ b/README.adoc @@ -40,7 +40,7 @@ It is an alternative to REST, SOAP, or gRPC. In this tutorial, we will query the details for a specific book from an online store backend. -This is how to send a GraphQL query to the server to retrieve details for the book with id "book-1": +This is an example request you can send to a GraphQL server to retrieve book details: [,graphql] ---- From 680ff89209f9de3e14de88d81754aa02dd57a486 Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 22 Jan 2023 15:21:50 +1100 Subject: [PATCH 05/18] Update README.adoc Co-authored-by: Rossen Stoyanchev --- README.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.adoc b/README.adoc index e6ce48f..e27fa78 100644 --- a/README.adoc +++ b/README.adoc @@ -57,11 +57,11 @@ query bookDetails { } ---- -This GraphQL query says: +This GraphQL request says: -* query a book with a specific id -* retrieve the id, name, pageCount and author from that book -* for the author, I want to know the firstName and lastName +* perform a query for a book with id "book-1" +* for the book, return id, name, pageCount and author +* for the author, return firstName and lastName The response is JSON: From 50ec6a6d765d0f731773ae3b6056204b81416ace Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 22 Jan 2023 15:22:00 +1100 Subject: [PATCH 06/18] Update README.adoc Co-authored-by: Rossen Stoyanchev --- README.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index e27fa78..94faff7 100644 --- a/README.adoc +++ b/README.adoc @@ -63,7 +63,7 @@ This GraphQL request says: * for the book, return id, name, pageCount and author * for the author, return firstName and lastName -The response is JSON: +The response is in JSON. For example: [,json] ---- From 445072c3fa5a7fbad7642d057544a0e35f120f27 Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 22 Jan 2023 15:22:13 +1100 Subject: [PATCH 07/18] Update README.adoc Co-authored-by: Rossen Stoyanchev --- README.adoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 94faff7..45ceeb1 100644 --- a/README.adoc +++ b/README.adoc @@ -80,8 +80,7 @@ The response is in JSON. For example: } ---- -An important feature of GraphQL is that it is statically typed. The server knows exactly the shape of every object you can query and any client can introspect the server and ask for the schema. -The schema describes what queries are possible and what fields you can get back. +An important feature of GraphQL is that it defines a schema language, and that it is statically typed. The server knows exactly what types of objects requests can query and what fields those objects contain. Furthermore, clients can introspect the server to ask for schema details. NOTE: The word schema in this tutorial refers to a "GraphQL Schema", which is not related to other schemas like "JSON Schema" or "Database Schema". From 0335bfa95b545f594bd1a8ba05eb8d0a73d7fdfa Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 22 Jan 2023 15:28:52 +1100 Subject: [PATCH 08/18] Update README.adoc Co-authored-by: Rossen Stoyanchev --- README.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.adoc b/README.adoc index 45ceeb1..f840568 100644 --- a/README.adoc +++ b/README.adoc @@ -112,10 +112,10 @@ We've barely scratched the surface of what's possible with GraphQL. Further information can be found on the https://graphql.org/learn/[official GraphQL page]. == Our example API: getting book details -The main steps of creating a https://docs.spring.io/spring-graphql/docs/current/reference/html/[Spring for GraphQL] service are: +These are the main steps to create a server with https://docs.spring.io/spring-graphql/docs/current/reference/html/[Spring for GraphQL]: -. Defining a GraphQL Schema -. Deciding on how the actual data for a query is fetched +. Define a GraphQL schema +. Implement the logic to fetch the actual data for a query Our example app will be a simple API to get details for a specific book. It is not intended to be a comprehensive API. From ad8a2c30218328c197b3006188dc516c7dc96f55 Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 22 Jan 2023 15:29:02 +1100 Subject: [PATCH 09/18] Update README.adoc Co-authored-by: Rossen Stoyanchev --- README.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index f840568..72f11d4 100644 --- a/README.adoc +++ b/README.adoc @@ -120,7 +120,7 @@ These are the main steps to create a server with https://docs.spring.io/spring-g Our example app will be a simple API to get details for a specific book. It is not intended to be a comprehensive API. == Schema -In your Spring for GraphQL service you initialized earlier, create a directory `src/main/resources/graphql`. +In your Spring for GraphQL application prepared earlier, create a directory `src/main/resources/graphql`. Add a new file `schema.graphqls` to `src/main/resources/graphql` with the following content: From 2e09ada4a7c177c00979ee9f31849500aa7015e7 Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 22 Jan 2023 15:36:39 +1100 Subject: [PATCH 10/18] Update README.adoc Co-authored-by: Rossen Stoyanchev --- README.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index 72f11d4..47bb4e7 100644 --- a/README.adoc +++ b/README.adoc @@ -144,7 +144,7 @@ type Author { } ---- -This schema defines one top level field (in the type `Query`): `bookById` which returns the details of a specific book. +Every GraphQL schema has a top-level `Query` type, and the fields under it are the query operations exposed by the application. Here the schema defines one query called `bookById` that returns the details of a specific book. It also defines the type `Book` which has the fields: `id`, `name`, `pageCount` and `author`. `author` is of type `Author`, which is defined after `Book`. From ff1103022c169851dccf35540b4ea06ad4b1ffea Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 22 Jan 2023 15:36:52 +1100 Subject: [PATCH 11/18] Update README.adoc Co-authored-by: Rossen Stoyanchev --- README.adoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 47bb4e7..ea447e7 100644 --- a/README.adoc +++ b/README.adoc @@ -146,8 +146,7 @@ type Author { Every GraphQL schema has a top-level `Query` type, and the fields under it are the query operations exposed by the application. Here the schema defines one query called `bookById` that returns the details of a specific book. -It also defines the type `Book` which has the fields: `id`, `name`, `pageCount` and `author`. -`author` is of type `Author`, which is defined after `Book`. +It also defines the types `Book` with fields `id`, `name`, `pageCount` and `author`, and the type `Author` with fields `firstName` and `lastName`. NOTE: The Domain Specific Language used above to describe a schema is called the Schema Definition Language or SDL. See more details in the https://graphql.org/learn/schema/[GraphQL documentation]. From 1cc23d6d1273aa2dbe08f6ca47a6850811462cb8 Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 22 Jan 2023 15:37:05 +1100 Subject: [PATCH 12/18] Update README.adoc Co-authored-by: Rossen Stoyanchev --- README.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index ea447e7..13a8400 100644 --- a/README.adoc +++ b/README.adoc @@ -148,7 +148,7 @@ Every GraphQL schema has a top-level `Query` type, and the fields under it are t It also defines the types `Book` with fields `id`, `name`, `pageCount` and `author`, and the type `Author` with fields `firstName` and `lastName`. -NOTE: The Domain Specific Language used above to describe a schema is called the Schema Definition Language or SDL. See more details in the https://graphql.org/learn/schema/[GraphQL documentation]. +NOTE: The Domain Specific Language used above to describe a schema is called the Schema Definition Language or SDL. For more details, see the https://graphql.org/learn/schema/[GraphQL documentation]. == Source of the data From 517dd4df4353a013968a08828445146ce2f0ab55 Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 22 Jan 2023 15:59:04 +1100 Subject: [PATCH 13/18] Rename completed files --- {graphql-server => complete}/.gitignore | 0 {graphql-server => complete}/build.gradle | 0 .../gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 {graphql-server => complete}/gradlew | 0 {graphql-server => complete}/gradlew.bat | 0 {graphql-server => complete}/settings.gradle | 0 .../main/java/com/example/graphqlserver/Author.java | 0 .../main/java/com/example/graphqlserver/Book.java | 0 .../com/example/graphqlserver/BookController.java | 0 .../graphqlserver/GraphqlServerApplication.java | 0 .../src/main/resources/application.properties | 0 .../src/main/resources/graphql/schema.graphqls | 0 .../GraphqlServerApplicationTests.java | 0 14 files changed, 0 insertions(+), 0 deletions(-) rename {graphql-server => complete}/.gitignore (100%) rename {graphql-server => complete}/build.gradle (100%) rename {graphql-server => complete}/gradle/wrapper/gradle-wrapper.jar (100%) rename {graphql-server => complete}/gradle/wrapper/gradle-wrapper.properties (100%) rename {graphql-server => complete}/gradlew (100%) rename {graphql-server => complete}/gradlew.bat (100%) rename {graphql-server => complete}/settings.gradle (100%) rename {graphql-server => complete}/src/main/java/com/example/graphqlserver/Author.java (100%) rename {graphql-server => complete}/src/main/java/com/example/graphqlserver/Book.java (100%) rename {graphql-server => complete}/src/main/java/com/example/graphqlserver/BookController.java (100%) rename {graphql-server => complete}/src/main/java/com/example/graphqlserver/GraphqlServerApplication.java (100%) rename {graphql-server => complete}/src/main/resources/application.properties (100%) rename {graphql-server => complete}/src/main/resources/graphql/schema.graphqls (100%) rename {graphql-server => complete}/src/test/java/com/example/graphqlserver/GraphqlServerApplicationTests.java (100%) diff --git a/graphql-server/.gitignore b/complete/.gitignore similarity index 100% rename from graphql-server/.gitignore rename to complete/.gitignore diff --git a/graphql-server/build.gradle b/complete/build.gradle similarity index 100% rename from graphql-server/build.gradle rename to complete/build.gradle diff --git a/graphql-server/gradle/wrapper/gradle-wrapper.jar b/complete/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from graphql-server/gradle/wrapper/gradle-wrapper.jar rename to complete/gradle/wrapper/gradle-wrapper.jar diff --git a/graphql-server/gradle/wrapper/gradle-wrapper.properties b/complete/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from graphql-server/gradle/wrapper/gradle-wrapper.properties rename to complete/gradle/wrapper/gradle-wrapper.properties diff --git a/graphql-server/gradlew b/complete/gradlew similarity index 100% rename from graphql-server/gradlew rename to complete/gradlew diff --git a/graphql-server/gradlew.bat b/complete/gradlew.bat similarity index 100% rename from graphql-server/gradlew.bat rename to complete/gradlew.bat diff --git a/graphql-server/settings.gradle b/complete/settings.gradle similarity index 100% rename from graphql-server/settings.gradle rename to complete/settings.gradle diff --git a/graphql-server/src/main/java/com/example/graphqlserver/Author.java b/complete/src/main/java/com/example/graphqlserver/Author.java similarity index 100% rename from graphql-server/src/main/java/com/example/graphqlserver/Author.java rename to complete/src/main/java/com/example/graphqlserver/Author.java diff --git a/graphql-server/src/main/java/com/example/graphqlserver/Book.java b/complete/src/main/java/com/example/graphqlserver/Book.java similarity index 100% rename from graphql-server/src/main/java/com/example/graphqlserver/Book.java rename to complete/src/main/java/com/example/graphqlserver/Book.java diff --git a/graphql-server/src/main/java/com/example/graphqlserver/BookController.java b/complete/src/main/java/com/example/graphqlserver/BookController.java similarity index 100% rename from graphql-server/src/main/java/com/example/graphqlserver/BookController.java rename to complete/src/main/java/com/example/graphqlserver/BookController.java diff --git a/graphql-server/src/main/java/com/example/graphqlserver/GraphqlServerApplication.java b/complete/src/main/java/com/example/graphqlserver/GraphqlServerApplication.java similarity index 100% rename from graphql-server/src/main/java/com/example/graphqlserver/GraphqlServerApplication.java rename to complete/src/main/java/com/example/graphqlserver/GraphqlServerApplication.java diff --git a/graphql-server/src/main/resources/application.properties b/complete/src/main/resources/application.properties similarity index 100% rename from graphql-server/src/main/resources/application.properties rename to complete/src/main/resources/application.properties diff --git a/graphql-server/src/main/resources/graphql/schema.graphqls b/complete/src/main/resources/graphql/schema.graphqls similarity index 100% rename from graphql-server/src/main/resources/graphql/schema.graphqls rename to complete/src/main/resources/graphql/schema.graphqls diff --git a/graphql-server/src/test/java/com/example/graphqlserver/GraphqlServerApplicationTests.java b/complete/src/test/java/com/example/graphqlserver/GraphqlServerApplicationTests.java similarity index 100% rename from graphql-server/src/test/java/com/example/graphqlserver/GraphqlServerApplicationTests.java rename to complete/src/test/java/com/example/graphqlserver/GraphqlServerApplicationTests.java From 090afb05b1942ec76ae50960ae0134e3032deeb8 Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 22 Jan 2023 15:59:29 +1100 Subject: [PATCH 14/18] Add initial files --- initial/.gitignore | 37 +++ initial/build.gradle | 25 ++ initial/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 60756 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + initial/gradlew | 240 ++++++++++++++++++ initial/gradlew.bat | 91 +++++++ initial/settings.gradle | 1 + .../GraphqlServerApplication.java | 13 + .../src/main/resources/application.properties | 0 .../GraphqlServerApplicationTests.java | 13 + 10 files changed, 425 insertions(+) create mode 100644 initial/.gitignore create mode 100644 initial/build.gradle create mode 100644 initial/gradle/wrapper/gradle-wrapper.jar create mode 100644 initial/gradle/wrapper/gradle-wrapper.properties create mode 100755 initial/gradlew create mode 100644 initial/gradlew.bat create mode 100644 initial/settings.gradle create mode 100644 initial/src/main/java/com/example/graphqlserver/GraphqlServerApplication.java create mode 100644 initial/src/main/resources/application.properties create mode 100644 initial/src/test/java/com/example/graphqlserver/GraphqlServerApplicationTests.java diff --git a/initial/.gitignore b/initial/.gitignore new file mode 100644 index 0000000..c2065bc --- /dev/null +++ b/initial/.gitignore @@ -0,0 +1,37 @@ +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ diff --git a/initial/build.gradle b/initial/build.gradle new file mode 100644 index 0000000..bf13e8e --- /dev/null +++ b/initial/build.gradle @@ -0,0 +1,25 @@ +plugins { + id 'java' + id 'org.springframework.boot' version '3.0.1' + id 'io.spring.dependency-management' version '1.1.0' +} + +group = 'com.example' +version = '0.0.1-SNAPSHOT' +sourceCompatibility = '17' + +repositories { + mavenCentral() +} + +dependencies { + implementation 'org.springframework.boot:spring-boot-starter-graphql' + implementation 'org.springframework.boot:spring-boot-starter-web' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testImplementation 'org.springframework:spring-webflux' + testImplementation 'org.springframework.graphql:spring-graphql-test' +} + +tasks.named('test') { + useJUnitPlatform() +} diff --git a/initial/gradle/wrapper/gradle-wrapper.jar b/initial/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..249e5832f090a2944b7473328c07c9755baa3196 GIT binary patch literal 60756 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/initial/gradlew.bat b/initial/gradlew.bat new file mode 100644 index 0000000..53a6b23 --- /dev/null +++ b/initial/gradlew.bat @@ -0,0 +1,91 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/initial/settings.gradle b/initial/settings.gradle new file mode 100644 index 0000000..f25b9a8 --- /dev/null +++ b/initial/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'graphql-server' diff --git a/initial/src/main/java/com/example/graphqlserver/GraphqlServerApplication.java b/initial/src/main/java/com/example/graphqlserver/GraphqlServerApplication.java new file mode 100644 index 0000000..f5875cf --- /dev/null +++ b/initial/src/main/java/com/example/graphqlserver/GraphqlServerApplication.java @@ -0,0 +1,13 @@ +package com.example.graphqlserver; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class GraphqlServerApplication { + + public static void main(String[] args) { + SpringApplication.run(GraphqlServerApplication.class, args); + } + +} diff --git a/initial/src/main/resources/application.properties b/initial/src/main/resources/application.properties new file mode 100644 index 0000000..e69de29 diff --git a/initial/src/test/java/com/example/graphqlserver/GraphqlServerApplicationTests.java b/initial/src/test/java/com/example/graphqlserver/GraphqlServerApplicationTests.java new file mode 100644 index 0000000..530301b --- /dev/null +++ b/initial/src/test/java/com/example/graphqlserver/GraphqlServerApplicationTests.java @@ -0,0 +1,13 @@ +package com.example.graphqlserver; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class GraphqlServerApplicationTests { + + @Test + void contextLoads() { + } + +} From e892f57dffa2815a70afd76decddc68485d6532a Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 22 Jan 2023 16:21:55 +1100 Subject: [PATCH 15/18] Add GitHub raw image link --- README.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index 13a8400..59f0447 100644 --- a/README.adoc +++ b/README.adoc @@ -290,7 +290,7 @@ query bookDetails { // dz todo: amend link with GitHub direct link You should see a response like this. -image:/graphiQL.png[GraphQL response] +image:https://raw.githubusercontent.com/spring-guides/graphql-server/main/graphiql.png[GraphQL response] Congratulations, you have built a GraphQL service and run your first query! With the help of Spring for GraphQL, you were able to achieve this with only a few lines of code. From 6b123259780612fa2a1210be02a1612f0e2e8bef Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 22 Jan 2023 19:33:54 +1100 Subject: [PATCH 16/18] Add controller test --- .../graphqlserver/BookControllerTest.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 complete/src/test/java/com/example/graphqlserver/BookControllerTest.java diff --git a/complete/src/test/java/com/example/graphqlserver/BookControllerTest.java b/complete/src/test/java/com/example/graphqlserver/BookControllerTest.java new file mode 100644 index 0000000..ece2565 --- /dev/null +++ b/complete/src/test/java/com/example/graphqlserver/BookControllerTest.java @@ -0,0 +1,45 @@ +package com.example.graphqlserver; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.graphql.GraphQlTest; +import org.springframework.graphql.test.tester.GraphQlTester; + +@GraphQlTest(BookController.class) +public class BookControllerTest { + + @Autowired + private GraphQlTester graphQlTester; + + @Test + void shouldGetFirstBook() { + this.graphQlTester + .document(""" + query bookDetails { + bookById(id: "book-1") { + id + name + pageCount + author { + id + firstName + lastName + } + } + } + """) + .execute() + .path("bookById") + .matchesJson(""" + { + "id": "book-1", + "name": "Effective Java", + "pageCount": 416, + "author": { + "firstName": "Joshua", + "lastName": "Bloch" + } + } + """); + } +} From b4ed6c474fd9506d0c70907f481a21015a6def4a Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 22 Jan 2023 20:25:08 +1100 Subject: [PATCH 17/18] Add controller test explanation --- README.adoc | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 60 insertions(+), 3 deletions(-) diff --git a/README.adoc b/README.adoc index 59f0447..b9e6978 100644 --- a/README.adoc +++ b/README.adoc @@ -288,16 +288,73 @@ query bookDetails { } ---- -// dz todo: amend link with GitHub direct link You should see a response like this. image:https://raw.githubusercontent.com/spring-guides/graphql-server/main/graphiql.png[GraphQL response] Congratulations, you have built a GraphQL service and run your first query! With the help of Spring for GraphQL, you were able to achieve this with only a few lines of code. === Testing -// dz todo: adding a few tests to verify this works +Spring for GraphQL provides helpers for GraphQL testing in the `spring-graphql-test` artifact. We have already included this artifact as part of the project generated by Spring Initializr. -See the https://docs.spring.io/spring-graphql/docs/current/reference/html/#testing[documentation] for more on testing in Spring for GraphQL. +Thoroughly testing a GraphQL service requires tests with different scopes. In this tutorial, we will write a `@GraphQlTest` slice test, which focuses on a single controller. There are other helpers to assist with full end-to-end integration tests and focused server side tests. For the full details, see the https://docs.spring.io/spring-graphql/docs/current/reference/html/#testing[Spring for GraphQL Testing documentation] and https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#features.testing.spring-boot-applications.spring-graphql-tests[Auto-configured Spring for GraphQL tests] in the Spring Boot documentation. + +Let's write an automated controller slice test that verifies the same `bookDetails` query requested in the GraphiQL playground a few moments ago. + +Add the following to a test file `BookControllerTest.java`. Save this file in a location within the `test` folder. + +[,java] +---- +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.graphql.GraphQlTest; +import org.springframework.graphql.test.tester.GraphQlTester; + +@GraphQlTest(BookController.class) +public class BookControllerTest { + + @Autowired + private GraphQlTester graphQlTester; + + @Test + void shouldGetFirstBook() { + this.graphQlTester + .document(""" + query bookDetails { + bookById(id: "book-1") { + id + name + pageCount + author { + id + firstName + lastName + } + } + } + """) + .execute() + .path("bookById") + .matchesJson(""" + { + "id": "book-1", + "name": "Effective Java", + "pageCount": 416, + "author": { + "firstName": "Joshua", + "lastName": "Bloch" + } + } + """); + } +} +---- + +Run the test and verify that the result is identical to the GraphQL query manually requested in the GraphiQL playground. + +The `@GraphQlTest` annotation is useful for writing controller slice tests, which are focused on a single controller. `@GraphQlTest` auto-configures the Spring for GraphQL infrastructure, without any transport nor server being involved. Automatic configuration enables us to write tests faster by skipping boilerplate code. As this is a focused slice test, only a limited number of beans are scanned including `@Controller` and `RuntimeWiringConfigurer`. For the list of scanned beans, see the +https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#appendix.test-auto-configuration[documentation]. + +`GraphQlTester` is a contract that declares a common workflow for testing GraphQL requests, independent of transport. In our test, we provide a document (our query text) with `document`, then `execute` the request, then select a part of the response to verify with `path`. Finally, we verify that the JSON at this path matches the expected result. == Further reading From bdec137fbf5c90b561d38966b87e2c9df49dce8e Mon Sep 17 00:00:00 2001 From: dondonz <13839920+dondonz@users.noreply.github.com> Date: Sun, 22 Jan 2023 20:37:14 +1100 Subject: [PATCH 18/18] Add conclusion --- README.adoc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/README.adoc b/README.adoc index b9e6978..32dc284 100644 --- a/README.adoc +++ b/README.adoc @@ -22,8 +22,8 @@ To manually initialize the project: . Navigate to https://start.spring.io. This service pulls in all the dependencies you need for an application and does most of the setup for you. . Choose either Gradle or Maven and the language you want to use. This guide assumes that you chose Java. -. Choose Spring Boot 3.x -. Choose at least Java 17 (minimum requirement for Spring Boot 3.x) +. Choose Spring Boot 3.x. +. Choose at least Java 17 (minimum requirement for Spring Boot 3.x). . Click *Dependencies* and select *Spring for GraphQL* and *Spring Web*. . Click *Generate*. . Download the resulting ZIP file, which is an archive of a GraphQL application that is configured with your choices. @@ -45,7 +45,7 @@ This is an example request you can send to a GraphQL server to retrieve book de [,graphql] ---- query bookDetails { - bookById(id: "book-1"){ + bookById(id: "book-1") { id name pageCount @@ -270,7 +270,7 @@ Navigate to http://localhost:8080/graphiql or your custom URL. === Run the query -Type in the query and hit the play button at the top of the window. +Type in the query and click the play button at the top of the window. [,graphql] ---- @@ -291,14 +291,14 @@ query bookDetails { You should see a response like this. image:https://raw.githubusercontent.com/spring-guides/graphql-server/main/graphiql.png[GraphQL response] -Congratulations, you have built a GraphQL service and run your first query! With the help of Spring for GraphQL, you were able to achieve this with only a few lines of code. +Congratulations, you have built a GraphQL service and executed your first query! With the help of Spring for GraphQL, you were able to achieve this with only a few lines of code. === Testing Spring for GraphQL provides helpers for GraphQL testing in the `spring-graphql-test` artifact. We have already included this artifact as part of the project generated by Spring Initializr. Thoroughly testing a GraphQL service requires tests with different scopes. In this tutorial, we will write a `@GraphQlTest` slice test, which focuses on a single controller. There are other helpers to assist with full end-to-end integration tests and focused server side tests. For the full details, see the https://docs.spring.io/spring-graphql/docs/current/reference/html/#testing[Spring for GraphQL Testing documentation] and https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#features.testing.spring-boot-applications.spring-graphql-tests[Auto-configured Spring for GraphQL tests] in the Spring Boot documentation. -Let's write an automated controller slice test that verifies the same `bookDetails` query requested in the GraphiQL playground a few moments ago. +Let's write a controller slice test that verifies the same `bookDetails` query requested in the GraphiQL playground a few moments ago. Add the following to a test file `BookControllerTest.java`. Save this file in a location within the `test` folder. @@ -356,6 +356,8 @@ https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#appendix.t `GraphQlTester` is a contract that declares a common workflow for testing GraphQL requests, independent of transport. In our test, we provide a document (our query text) with `document`, then `execute` the request, then select a part of the response to verify with `path`. Finally, we verify that the JSON at this path matches the expected result. +Congratulations! In this tutorial you built a GraphQL service, ran your first query, and wrote your first GraphQL test! + == Further reading === Sample source code