GraphQL for beginners me

A graphQL server needs a schema, resolvers and a datasource.
The schema defines the data model but also the queries that you are allowed to do.
The datasource actually gets the data from wherever it is, like a database or file or whatever.
Resolvers take the data from the datasource and convert it into the shape defined in the schema.

Lets say you are listing the books you have in your bookshelf.

To list all the books you need:

To get a specific book by its ID (yeh I know) you need: