GraphQL tutorial for newbies - cheatsheet
Tags: javascript, webdev, beginners, discuss
Published: 2019-03-20 13:31:12

---
title: GraphQL tutorial for newbies - cheatsheet
published: true
description: 
canonical_url: https://blog.graphqleditor.com/GraphQL-newbie-tutorial-cheatsheet/
tags: javascript, webdev, beginners, discuss
series: GraphQL tutorial for newbies
---

##Introduction

I'm a founder of a [Visual Editor for GraphQL](https://graphqleditor.com). This blog post is part of a tutorial for newbies. Follow me to get more and check other articles. I’ve already covered basics of GraphQL, introduction and Schema Definition Language. Feel free to comment, suggest changes.

##Type definitions
    
    scalar > Scalar type
    type > Object type
    interface > Interface type
    union > Union type
    enum > Enumerable type
    input > Input object type

[![](https://thepracticaldev.s3.amazonaws.com/i/bm922b6d43jewv4xuin2.gif)](https://app.graphqleditor.com/demo/blog-sample)   

##Scalar types
    
    String - set of characters in UTF-8 format,
    Int - 32-bit integer,
    Float - floating point number,
    Boolean - value true or false
    ID - a type representing the unique identifier for the object.

[![](https://thepracticaldev.s3.amazonaws.com/i/9qkmgenwzdztc7qapfdz.gif)](https://app.graphqleditor.com/demo/blog-sample)

##Type modifiers

    
    String > Nullable string
    String! > Required string
    [String] > List of strings
    [String]! > Required list of strings
    [String!]! > Required list of required strings
    

[![](https://thepracticaldev.s3.amazonaws.com/i/up4unchhdvecrcdibcs6.gif)](https://app.graphqleditor.com)

##Example of a GraphQL schema

    type Author {
      id: Int!
      firstName: String
      lastName: String
      """
      the list of Books by this author
      """
      books: [Book]
    }
    type Book {
      id: Int!
      title: String
      author: Author
      pages: Int
    }


Explore this example in our [Visual Editor for GraphQL](https://graphqleditor.com)

[![](https://thepracticaldev.s3.amazonaws.com/i/ucysz7rlgk5rsxpm1pit.png)](https://app.graphqleditor.com/demo/blog-sample2)
 
##This schema allows the following query:
    type Query {
      book: [Book]
      author(id: Int!): Author
    }  


##Input Arguments

#Basic Input
    type Root {
      users(limit: Int): [User]!
    }
#Input with default value
    type Root {
      users(limit: Int = 10): [User]!
    }
#Input with multiple args
    type Root {
      users(limit: Int, sort: String): [User]!
    }
#Input with multiple args and default values
    type Root {
      users(limit: Int = 10, sort: String): [User]!
    }
###or
    type Root {
      users(limit: Int, sort: String = "asc" ): [User]!
    }


##Interfaces

    interface Publication {
      title: String!
      releasedDate: String!
    }
    type Magazine implements Publication {
      title: String!
      releasedDate: String!
      version: Int!
    }  
    type Book implements Publication {
      title: String!
      releasedDate: String!
      pages: Int!
    }

# Unions

    union SearchResult = Book | Author
  
    type Query {
      search(text: String!): SearchResult
    }

    query {
      search(text: "Park") {
        ... on Book {
          title
        }
        ... on Author {
          name
        }
      }
    }
    

##Enums

    enum RGB {
      RED
      GREEN
      BLUE
    }
    type Root {
      color: RGB
    }

##Input Object Types

    input ListUsersInput {
      limit: Int 
      since_id: ID
    }
    type Root {
      users(params: ListUsersInput): [Users]!
    }

If you're looking for best graphql tutorials check this [post](https://blog.graphqleditor.com/top-graphql-tutorials-reviewed-2019).