Giter Club home page Giter Club logo

graphql-workshop's Introduction

GraphQL React Application

Description πŸ“‹

A GraphQL workshop to learn GraphQL implementations in JavaScript

GraphQL App DEMO πŸ“Ή

Built With ⚑

  1. GraphQL
  2. React
  3. Apollo Client
  4. External dependency wp-graphql ( for graphql-with-wordpress branch )
  5. Express
  6. Node js
  7. create-react-app ( uses Babel and Webpack )

Details πŸ“œ

  1. ➑️ We have set up our backend server in node and express app ( localhost:5000/graphql ) in server.js.
  2. ➑️ React application is set up using create-react-app ( that runs webpack-dev-server for the frontend on localhost:3000 )
  3. ➑️ The schema and graphQl queries are created in schema.js
  4. ➑️ We have used wp-graphql WordPress plugin that brings the power of GraphQL to WordPress.
  5. ➑️ GraphiQL playground is available on localhost:5000/graphql.
  6. ➑️ 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.
  7. ➑️ We import <Apolloclient> from apollo-boost and create a new object called client and pass the url for our GraphQL endpoint into this object.
  8. ➑️ We wrap our main React Component <AppoloProvider> and apollo client is then passed to these components, so that the results of your query can be passed to your components.
  9. ➑️ The graphql-tag ( graphQl query parsing utility ) is installed and gpl is imported from it. The gpl parses GraphQL query strings into the standard GraphQL AST.
  10. ➑️ Use gpl to query the data in front react app, from the schema we have create in our node application in backend.
  11. ➑️ We have displayed all the data received as response of the query on home page( Home.js ).

GraphiQL Playground DEMO πŸ“Ή

Installation πŸ”§

  1. Clone this repo by running git clone https://github.com/imranhsayed/graphql-workshop
  2. npm install
  3. npm 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 .
  1. 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.

  1. wp-graphql
  2. wp-graphiql

Instructions πŸ‘‰

  • Graphiql is 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.

  1. npm run dev runs 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 ).
  2. npm run dev:client starts webpack dev server for React on port 5000
  3. npm run dev:server starts nodejs server on port 3000
  4. npm run prod:client runs the build for production for client.

Useful Links πŸ”—

  1. Express GraphQL github link
  2. Apollo GraphQL

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 πŸ™ 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.😊

πŸ“ΉMeetUp Highlights

πŸ“·Twitter Post with Snaps

License

License

graphql-workshop's People

Contributors

dependabot[bot] avatar imranhsayed avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

saurabh-lohiya

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.