GraphQL basic Schema Design
let’s take an example to understand the basics of graphQL Schema design
Example:
type Book {
id: ID!
title: String!
author: String!
}
type Query {
books: [Book!]!
book(id: ID!): Book
}
type Mutation {
createBook(title: String!, author: String!): Book
updateBook(id: ID!, title: String, author: String): Book
deleteBook(id: ID!): Boolean
}
Explanation:
We have defined three main types:
- Book
- Query
- Mutation
Book Type:
The Book type represents a book object with three fields:
- id: An ID field, which is non-nullable (! indicates that it cannot be null).
- title: A String field, which is non-nullable.
- author: A String field, which is non-nullable.
Query Type:
It defines two query fields:
- books: Returns a list of Book objects, ! indicates a non-null list of non-null Book objects.
- book(id: ID!): Takes an id argument and returns a single Book object.
Mutation Type:
It defines three mutation fields:
- createBook: Creates a new book with title and author arguments and returns a Book.
- updateBook: Updates an existing book with id, title, and author arguments and returns a Book.
- deleteBook: Deletes a book with the given id and returns a Boolean indicating success.
What is GraphQL?
Client and server communication follows a traditional approach of REST APIs which is good but nowadays applications have become more powerful and complex which requires a more flexible approach rather than REST, so here GraphQL comes into the picture. In this article, we will go through all the concepts of graphQL.