"Have no fear of perfection, you’ll never reach it." - Salvador Dali
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.
As simple as that:
git clone https://github.com/Quadric/perfect-graphql-starter
cd perfect-graphql-starter
npm install
npm start
-
Paste this on the left side of the page:
(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.",
}
]
}
}
}
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
}
}