GraphQL customization¶
Custom schema¶
You can customize the GraphQL schema that is generated from your repository.
You can use it if your application requires custom GraphQL resources, for instance for Doctrine entities.
To do so, create a config/graphql/types/Query.types.yaml
file. It is used as the GraphQL query root.
In that file, add new fields that use any custom type or custom logic you require, based on overblog/GraphQLBundle.
The custom schema should be created only after generating other schemas to avoid problems, especially if the custom schema depends on other schema elements.
For example, Type "Domain" inherited by "Query" not found.
.
To avoid this problem during deployment, add the generated schemas to the repository.
Update the schema in the event of any changes related to GraphQL and when changing the environment, for example from dev
to prod
.
Configuration¶
You can include the Ibexa DXP schema in two ways: either through inheritance or composition.
Inheritance¶
To use inheritance, apply the following configuration in config/graphql/types/Query.types.yaml
:
1 2 3 4 5 6 7 8 |
|
Composition¶
To use composition, define Ibexa DXP schema as a field in your custom schema.
For example, in config/graphql/types/Query.types.yaml
:
1 2 3 4 5 6 7 8 |
|
Custom mutations¶
Custom mutations are created in the same way as custom query configuration.
A config/graphql/types/Mutation.types.yaml
file is used as the source for mutation definitions in your schema.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
Custom field name¶
You can customize the name used by GraphQL as the content field name. Use this setting to avoid conflicts with field names that derive from a content type definition.
1 2 3 |
|