Object types
Object types are the fundamentals of any GraphQL schema, they are used to define the kind of objects that exist in a schema. Object types are created by defining a name and a list of fields, hereβs an example object type defined using the GraphQL schema language:
type Character { name: String! age: Int!} A note on Query, Mutation and Subscription
While reading about GraphQL you might have encountered 3 special object types:
Query , Mutation and Subscription . They are defined as standard object
types, with the difference that they are also used as entry points for your
schema (also referred as root types).
-
Queryis the entry point for all the query operations -
Mutationis the entry point for all the mutations -
Subscriptionis the entry point for all the subscriptions.
For a walk-through on how to define schemas, read the schema basics .
Defining object types
In Strawberry, you can define object types by using the @strawberry.type
decorator, like this:
import strawberry
@strawberry.typeclass Character: name: str age: int type Character { name: String! age: int!} You can also refer to other types, like this:
import strawberry
@strawberry.typeclass Character: name: str age: int
@strawberry.typeclass Book: title: str main_character: Character type Character { name: String! age: Int!}
type Book { title: String! mainCharacter: Character!} API
@strawberry.type(name: str = None, description: str = None)
Creates an object type from a class definition.
name : if set this will be the GraphQL name, otherwise the GraphQL will be
generated by camel-casing the name of the class.
description : this is the GraphQL description that will be returned when
introspecting the schema or when navigating the schema using GraphiQL.