This is documentation for v11, which is no longer actively maintained.
For up-to-date documentation, see the latest version.

Queries

The query type in GraphQL represents a read-only view of all of our entities and ways to retrieve them. A query type is required for every GraphQL server.

SDL
type Query {
books: [Book!]!
author(id: Int!): Author
}

Clients can query one or more fields through the query type.

GraphQL
query {
books {
title
author
}
author(id: 1) {
name
}
}

Queries are expected to be side-effect free and are therefore parallelized by the execution engine.

Usage

A query type can be defined like the following.

C#
public class Query
{
public Book GetBook()
{
return new Book { Title = "C# in depth", Author = "Jon Skeet" };
}
}
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services
.AddGraphQLServer()
.AddQueryType<Query>();
}
}

A query type is just a regular object type, so we can do everything we could do with an object type with the query type (this applies to all root types).