GraphQL React Application
Description π
A GraphQL workshop to learn GraphQL implementations in JavaScript
GraphQL App DEMO πΉ
Built With β‘
- GraphQL
- React
- Apollo Client
- External dependency wp-graphql ( for
graphql-with-wordpressbranch ) - Express
- Node js
- create-react-app ( uses Babel and Webpack )
Details π
β‘οΈ 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 onlocalhost:3000)β‘οΈ The schema and graphQl queries are created inschema.jsβ‘οΈ We have used wp-graphql WordPress plugin that brings the power of GraphQL to WordPress.β‘οΈ GraphiQL playground is available onlocalhost: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.β‘οΈ Thegraphql-tag( graphQl query parsing utility ) is installed andgplis imported from it. Thegplparses GraphQL query strings into the standard GraphQL AST.β‘οΈ Usegplto 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).
GraphiQL Playground DEMO πΉ
Installation π§
- Clone this repo by running
git clone https://github.com/imranhsayed/graphql-workshop npm installnpm run dev
Branches Information:
-
- 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.
Plugins for GraphQL with WordPress π
For graphql-with-wordpress branch Clone these repositories into plugin directory of your WordPress Install and activate them from WordPress dashboard.
Instructions π
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
Common Commands π»
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.
Useful Links π
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
Thank you Note π
I would like to thank

