A GraphQL workshop to learn GraphQL implementations in JavaScript
- GraphQL
- React
- Apollo Client
- External dependency wp-graphql ( for
graphql-with-wordpressbranch ) - Express
- Node js
- create-react-app ( uses Babel and Webpack )
- β‘οΈ We have set up our backend server in node and express app (
localhost:5000/graphql) inserver.js. - β‘οΈ React application is set up using create-react-app ( that runs webpack-dev-server for the frontend on
localhost:3000) - β‘οΈ The schema and graphQl queries are created in
schema.js - β‘οΈ We have used wp-graphql WordPress plugin that brings the power of GraphQL to WordPress.
- β‘οΈ GraphiQL playground is available on
localhost:5000/graphql. - β‘οΈ We have used Apollo Client to build UI in React that fetches data from GraphQL. Apollo client help us create a query and binds our React component with the query, so that when component renders, and handles any queries to GraphQl server and return the results.
- β‘οΈ We import
<Apolloclient>fromapollo-boostand create a new object calledclientand pass the url for our GraphQL endpoint into this object. - β‘οΈ We wrap our main React Component
<AppoloProvider>and apolloclientis then passed to these components, so that the results of your query can be passed to your components. - β‘οΈ The
graphql-tag( graphQl query parsing utility ) is installed andgplis imported from it. Thegplparses GraphQL query strings into the standard GraphQL AST. - β‘οΈ Use
gplto query the data in front react app, from the schema we have create in our node application in backend. - β‘οΈ We have displayed all the data received as response of the query on home page(
Home.js).
- Clone this repo by running
git clone https://github.com/imranhsayed/graphql-workshop npm installnpm run dev
-
- master Creates a GraphQL server using express and nodejs and adds an endpoint at
localhost:5000/graphql, where you can send all your query request. - It has Apollo client with React on front end .
- master Creates a GraphQL server using express and nodejs and adds an endpoint at
- graphql-with-wordpress uses GraphQL server created by wp-graphql plugin on your WordPress install and React in frontend. More info is in that branch's read me.
For graphql-with-wordpress branch Clone these repositories into plugin directory of your WordPress Install and activate them from WordPress dashboard.
Graphiqlis a tool that we can use as a client to make request to our server.- Graph QL endpoint where you can send your query request:
localhost:5000/graphql
You can run these commands from root directory.
npm run devruns webpack-dev-server for frontend on port 3000 in watch mode and backend server on port 5000. ( Uses concurrently package to run the two servers together, so the below two command are not required to run if you run this ).npm run dev:clientstarts webpack dev server for React on port5000npm run dev:serverstarts nodejs server on port3000npm run prod:clientruns the build for production for client.
Apollo Client is way to use GraphQL to build client applications. It helps you build a UI that fetches data with GraphQL, and can be used with any JavaScript front-end.
When two components need the same data. If an action triggers an update on update, the second one wonβt be updated . Apollo solves this using reactive cache feature.
Its main job is fetch some GraphQL queries and keep them in sync with one another
I would like to thank π everyone who attended the GraphQL with React and WordPress Meet up on Sep 21, 2019. The session wouldn't have been so enjoyable and fruitful without your presence.π

