@PublicApi public class SchemaGenerator extends java.lang.Object
The generator uses the RuntimeWiring
to insert code that runs behind the schema
elements such as DataFetcher
s, TypeResolver
s
and scalar Coercing
.
The order of DataFetcher
resolution is as follows:
WiringFactory
provides the DataFetcherFactory
for a field in its parent type then that is usedWiringFactory
provides the DataFetcher
for a field in its parent type then that is usedRuntimeWiring
provides the DataFetcher
for a field in its parent type, then that is usedRuntimeWiring
provides a default DataFetcher
for a fields parent type, then that is usedWiringFactory
provides a default DataFetcherFactory
for any element then that is usedGraphQLCodeRegistry.Builder#getDefaultDataFetcherFactory()
provides a DataFetcherFactory
for a value then that is usedPropertyDataFetcher
is used as a last resort for the field
The order of TypeResolver
resolution is as follows:
WiringFactory
provides a TypeResolver
then that is usedTypeRuntimeWiring
provides a TypeResolver
then that is used
The order of GraphQLScalarType
resolution is as follows:
WiringFactory
provides a GraphQLScalarType
then that is usedRuntimeWiring.getScalars()
is usedModifier and Type | Class and Description |
---|---|
static class |
SchemaGenerator.Options
These options control how the schema generation works
|
Constructor and Description |
---|
SchemaGenerator() |
Modifier and Type | Method and Description |
---|---|
static GraphQLSchema |
createdMockedSchema(java.lang.String sdl)
Created a schema from the SDL that is has a mocked runtime.
|
GraphQLSchema |
makeExecutableSchema(SchemaGenerator.Options options,
TypeDefinitionRegistry typeRegistry,
RuntimeWiring wiring)
This will take a
TypeDefinitionRegistry and a RuntimeWiring and put them together to create a executable schema
controlled by the provided options. |
GraphQLSchema |
makeExecutableSchema(TypeDefinitionRegistry typeRegistry,
RuntimeWiring wiring)
This will take a
TypeDefinitionRegistry and a RuntimeWiring and put them together to create a executable schema |
public static GraphQLSchema createdMockedSchema(java.lang.String sdl)
sdl
- the SDL to be mockedRuntimeWiring.MOCKED_WIRING
public GraphQLSchema makeExecutableSchema(TypeDefinitionRegistry typeRegistry, RuntimeWiring wiring) throws SchemaProblem
TypeDefinitionRegistry
and a RuntimeWiring
and put them together to create a executable schematypeRegistry
- this can be obtained via SchemaParser.parse(String)
wiring
- this can be built using RuntimeWiring.newRuntimeWiring()
SchemaProblem
- if there are problems in assembling a schema such as missing type resolvers or no operations definedpublic GraphQLSchema makeExecutableSchema(SchemaGenerator.Options options, TypeDefinitionRegistry typeRegistry, RuntimeWiring wiring) throws SchemaProblem
TypeDefinitionRegistry
and a RuntimeWiring
and put them together to create a executable schema
controlled by the provided options.options
- the controlling optionstypeRegistry
- this can be obtained via SchemaParser.parse(String)
wiring
- this can be built using RuntimeWiring.newRuntimeWiring()
SchemaProblem
- if there are problems in assembling a schema such as missing type resolvers or no operations defined