register_graphql_object_type
Add an Object Type to the GraphQL Schema
register_graphql_object_type( string $type_name, array $config );
Parameters
- $type_name (string): The name of the Type. This must be unique across all Types of any kind in the GraphQL Schema.
- $config (array):
- $description (string): Description of the Object Type. What does it represent? This will be used in Introspection for for self-documenting the Type in the Schema.
- $fields (array): Associative array of key/value pairs. The key being the field name and the value being the field config.
- $name (string): The name of the field
- $config (array): Config for the field to add to the Type
- $type: (string): The name of the GraphQL Type the field should return.
- $description (string): Description of the field. What does the field represent? This will be used in Introspection to self-document the Schema.
- $resolve (function): The function that will execute when the field is asked for in a query.
Source
File: access-functions.php
Examples
Below are some examples of using the function to extend the GraphQL Schema.
Register a new Type with a single field
This example shows how to register a new type called MyNewType
which contains a String
field.
add_action( 'graphql_register_types', function() {
register_graphql_object_type( 'MyNewType', [
'description' => __( 'Describe the Type and what it represents', 'replace-me' ),
'fields' => [
'testField' => [
'type' => 'String',
'description' => __( 'Describe what this field should be used for', 'replace-me' ),
],
],
] );
} );
You can view this type in the documentation section of GraphiQL:
Register a new type with multiple fields
This example shows how to register a new type called MyMultifieldType
which contains a String
and an Int
field.
register_graphql_object_type( 'MyMultifieldType', [
'description' => __( 'Describe what MyMultifieldType is', 'replace-me' ),
'fields' => [
'testField' => [
'type' => 'String',
'description' => __( 'Describe what testField should be used for', 'replace-me' ),
],
'count' => [
'type' => 'Int',
'description' => __( 'Describe what the count field should be used for', 'replace-me' ),
],
],
] );
You can view this type in the documentation section of GraphiQL: