This is a didactic introduction to GraphQL, starting from a simple Hello
World to a network-based GraphQL server with a built-in GraphQL UI.
It is provided in the form of a tutorial which step-by-step
introduces more usage of GraphQL. Each tutorial step XX
can be found
in the file sample-XX
and run with npm run sample-XX
. The
distinct tutorial steps are:
- just plain all-in-one GraphQL "Hello World"
- replaces GraphQL schema API calls with GraphQL schema definition language
- split GraphQL usage into distinct parts
- replace "Hello World" with an entity "OrgUnit" and enable schema/resolver warnings
- add "Person" entity and use a separate data store
- factor out resolver functionality into generic data access object functions
- add QueryEntityOne DAO method for querying particular objects
- allow relationships to be queried and be strict on resolvers now
- add remaining CRUD operations (create/clone, update, delete) to GraphQL entity types
- wrap GraphQL application programming interface (API) with a remote network interface (RNI)
- replace built-in client with interactive GraphQL web user interface (GraphiQL)
- add descriptions to GraphQL schema for introspection inside GraphiQL
- move data into SQLite RDBMS and access it with Sequelize ORM
- wrap mutations into a single RDBMS transaction
- support also GraphQL over Websocket communication
- add GraphQL Subscription support
- simplify and migrate to all-in-one GraphQL-IO framework
The steadily growing GraphQL community has many resources. A few selected ones were hand-picked for you here.
-
Awesome GraphQL [1]
https://github.com/chentsulin/awesome-graphql -
Awesome GraphQL [2]
https://github.com/joshblack/awesome-graphql
-
GraphQL Query & Schema Language: Learning
http://graphql.org/learn/ -
GraphQL Schema Language: Learning
http://graphql.org/learn/schema/ -
GraphQL Schema Language: Cheat Sheet
https://wehavefaces.net/graphql-shorthand-notation-cheatsheet-17cd715861b6#.x5zncd650 -
GraphQL Query Language Specification
http://facebook.github.io/graphql/
-
GraphiQL
https://github.com/graphql/graphiql
https://github.com/rse/hapi-plugin-graphiql -
ChromeiQL
https://chrome.google.com/webstore/detail/chromeiql/fkkiamalmpiidkljmicmjfbieiclmeij -
GraphiCLI/Gest
https://github.com/mfix22/graphicli -
GraphQL Network for Chrome
https://chrome.google.com/webstore/detail/graphql-network/igbmhmnkobkjalekgiehijefpkdemocm -
GraphQLviz [1]
https://github.com/sheerun/graphqlviz -
GraphQLviz [2]
https://github.com/Macroz/GraphQLviz -
GraphQL Visualizer [3]
http://nathanrandal.com/graphql-visualizer/ -
GraphQLHub:
https://www.graphqlhub.com/ -
PostgraphQL
https://github.com/calebmer/postgraphql -
DGraph
https://dgraph.io/
-
GraphQL LaunchPad
https://launchpad.graphql.com/ -
GraphCool
https://www.graph.cool/
-
GraphQL.js
https://github.com/graphql/graphql-js -
GraphQL-Tools
http://dev.apollodata.com/tools/
https://github.com/apollostack/graphql-tools -
GraphQL-Tools Addons
https://github.com/rse/graphql-tools-types
https://github.com/rse/graphql-tools-sequelize
https://github.com/rse/graphql-tools-subscribe -
HAPI Plugin for GraphiQL Integration
https://github.com/rse/hapi-plugin-graphiql
-
Apollo Client [JavaScript]
http://www.apollostack.com/
http://dev.apollodata.com/ -
Lokka [JavaScript]
https://github.com/kadirahq/lokka
-
Sangria [Scala]
http://sangria-graphql.org/ -
GraphQL-Java [Java]
https://github.com/graphql-java/graphql-java -
GraphQL-PHP [PHP]
https://github.com/webonyx/graphql-php