a boilerplate for your GraphQL server
JavaScript
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
domain
server
.babelrc
.gitignore
LICENSE
README.md
nodemon.json
package.json

README.md

Perfect GraphQL Starter

"Have no fear of perfection, you’ll never reach it." - Salvador Dali

Why

This project aims to be a place for the community to spread good practices and the use of related technologies.

It is inspired by the tutorial How to build a GraphQL server and its repository.

There will never be an agreement on a perfect boilerplate project for any technology we are aware of and it would not be different for a GraphQL-based project. But it doesn't mean we should not try to get as close as we can get from it. So please don't mind our pretentious project name, it's just a catchy one.

Install

As simple as that:

git clone https://github.com/Quadric/perfect-graphql-starter
cd perfect-graphql-starter
npm install
npm start

Getting started

(Run)

{
  getAuthor(_id: 2) {
    lastName
    posts {
      text
    }
  }
}
  • Hit the play button (cmd-return), then you should get this on the right side:
{
  "data": {
    "getAuthor": {
      "lastName": "Lombardi",
      "posts": [
        {
          "text": "Perfection is not attainable, but if we chase perfection we can catch excellence.",
        }
      ]
    }
  }
}

Examples

There is more you can try! Go back to the interactive tool and paste any of the following snippets there and check the result:

(Run)

{
  getAuthor(_id: 2) {  # Almost the same as
    firstName          # before, but with extra
    lastName           # fields.
    posts {
      title
      text
      views
    }
  }
}

(Run)

{
  getPostsByTitle(titleContains: "fear") {
    title               # Try adding the 'author'
    text                # field anywhere inside
    views               # this block ;)
  }
}

(Run)

{
  getPostsByAuthor(authorId:1) {  # This author has a private
    title                         # post. You should get an
    text                          # Authorization error.
    views
  }
}