Table of Contents
- Intro
- Requirements and Downloads
- Enable GraphQL Servlet
- Enable GraphiQL
- Supported GraphQL-Java Libraries
- Contributions
- Licenses
Repository contains:
graphql-spring-boot-starter
to turn your boot application into GraphQL server (see graphql-java-servlet)graphiql-spring-boot-starter
to embedGraphiQL
tool for schema introspection and query debugging (see graphiql)
Requirements:
- Java 1.8
- Spring Framework Boot > 1.3.x (web)
Gradle:
repositories {
mavenCentral()
}
dependencies {
compile 'com.graphql-java:graphql-spring-boot-starter:3.3.0'
// to embed GraphiQL tool
compile 'com.graphql-java:graphiql-spring-boot-starter:3.3.0'
}
Maven:
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-spring-boot-starter</artifactId>
<version>3.3.0</version>
</dependency>
<!-- to embed GraphiQL tool -->
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphiql-spring-boot-starter</artifactId>
<version>3.3.0</version>
</dependency>
The servlet becomes accessible at /graphql
if graphql-spring-boot-starter
added as a dependency to a boot application.
A GraphQL schema is automatically discovered based on which graphql-java schema libraries are currently on the classpath.
See the graphql-java-servlet usage docs for the avaiable endpoints exposed.
Available Spring Boot configuration parameters (either application.yml
or application.properties
):
graphql:
servlet:
mapping: /graphql
enabled: true
corsEnabled: true
spring-graphql-common:
clientMutationIdName: clientMutationId
injectClientMutationId: true
allowEmptyClientMutationId: false
mutationInputArgumentName: input
outputObjectNamePrefix: Payload
inputObjectNamePrefix: Input
schemaMutationObjectName: Mutation
By default a global CORS filter is enabled for /graphql/**
context.
The corsEnabled
can be set to false
to disable it.
GraphiQL becomes accessible at the root /
if graphiql-spring-boot-starter
added as a dependency to a boot application.
Note that GraphQL server must be available at /graphql/*
context to be discovered by GraphiQL.
The following libraries have auto-configuration classes for creating a GraphQLSchema
.
All GraphQLResolver
and GraphQLScalar
beans, along with a bean of type SchemaParserDictionary
(to provide all other classes), will be used to create a GraphQLSchema. Any files on the classpath named *.graphqls
will be used to provide the schema definition. See the Readme for more info.
See the Readme for usage instructions.
Contributions are welcome. Please respect the Code of Conduct.
graphql-spring-boot-starter
and graphiql-spring-boot-starter
are licensed under the MIT License. See LICENSE for details.