{"id":15539471,"url":"https://github.com/mstuart/graphql-workshop","last_synced_at":"2025-04-23T16:11:05.715Z","repository":{"id":148797920,"uuid":"152300203","full_name":"mstuart/graphql-workshop","owner":"mstuart","description":"⚡GraphQL Workshop @ Venmo -- Fall 2018 🏎️","archived":false,"fork":false,"pushed_at":"2018-10-16T14:03:11.000Z","size":275,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-09T12:53:00.548Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mstuart.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-09T18:21:28.000Z","updated_at":"2019-07-08T14:16:29.000Z","dependencies_parsed_at":"2023-05-29T00:15:31.927Z","dependency_job_id":null,"html_url":"https://github.com/mstuart/graphql-workshop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mstuart%2Fgraphql-workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mstuart%2Fgraphql-workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mstuart%2Fgraphql-workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mstuart%2Fgraphql-workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mstuart","download_url":"https://codeload.github.com/mstuart/graphql-workshop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250468270,"owners_count":21435452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T12:10:31.667Z","updated_at":"2025-04-23T16:11:05.710Z","avatar_url":"https://github.com/mstuart.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# graphql-workshop \u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/1/17/GraphQL_Logo.svg/1024px-GraphQL_Logo.svg.png\" width=\"50\"\u003e\n\n[![PRs Welcome][prs-badge]][prs]\n[![Watch on GitHub][github-watch-badge]][github-watch]\n[![Star on GitHub][github-star-badge]][github-star]\n[![Tweet][twitter-badge]][twitter]\n\n## Table of Contents\n\n- [Topics covered](#topics-covered)\n- [System Requirements](#system-requirements)\n- [Installation](#installation)\n- [Running the app](#running-the-app)\n\n## Topics covered\n\nIn this workshop, we are going to create a GraphQL API that integrates with an external REST API. We are going to create schemas and resolver functions and discover some best practices along the way.\n\nThis workshop is broken up into steps that are separated by Git branches. You're likely on the `master` branch now, which has some introductions. After you read through the comments in [server.js](https://github.com/mstuart/graphql-workshop/blob/master/server.js), switch to the `step1` branch (with `$ git checkout step1`) and move forward from there. The `step1-solution` branch has the solution for `step1` and so on. There are 6 steps to this workshop.\n\n## Curriculum\n\nDay 1 -- Basics and beyond\n\n- [master](https://github.com/mstuart/graphql-workshop/tree/master) — Introduces [graphql-yoga](https://github.com/prisma/graphql-yoga) and some GraphQL concepts like typeDefs/schema, resolvers, etc.\n- [step1](https://github.com/mstuart/graphql-workshop/tree/step1) — Get familiar w/ adding new fields and resolvers.\n- [step2](https://github.com/mstuart/graphql-workshop/tree/step2) — Optional and required arguments and demonstrates the use of the `rootObj`\n- [step3](https://github.com/mstuart/graphql-workshop/tree/step3) — Deprecate a field. Add a new field that is a “link” to another type. This new field makes another API call. More practice w/ schema design.\n- [step4](https://github.com/mstuart/graphql-workshop/tree/step4) — Dedupe API calls w/ [dataloader](https://github.com/facebook/dataloader)\n\nDay 2 -- GraphQL in practice\n\n- [step5](https://github.com/mstuart/graphql-workshop/tree/step5) — Using `context` to share loaders between resolvers\n- [step6](https://github.com/mstuart/graphql-workshop/tree/step6) - Refactoring the project into a hierarchical directory structure w/ schema files and resolvers using [merge-graphql-schemas](https://github.com/okgrow/merge-graphql-schemas)\n- [step7](https://github.com/mstuart/graphql-workshop/tree/step7) - Integrate w/ a GraphQL server using [react-apollo](https://github.com/apollographql/react-apollo)\n\n## System Requirements\n\n- [git][git] v2.14.1 or greater\n- [NodeJS][node] v8.9.4 or greater\n- [npm][npm] v5.6.0 or greater\n\nAll of these must be available in your `PATH`. To verify things are set up\nproperly, you can run this:\n\n```\ngit --version\nnode --version\nnpm --version\n```\n\nIf you have trouble with any of these, learn more about the PATH environment\nvariable and how to fix it here for [windows][win-path] or\n[mac/linux][mac-path].\n\n## Installation\n\n1. Ensure you're using at least `node@8` and `npm@5`\n2. Clone, install, and run the server\n\n```\n$ git clone https://github.com/mstuart/graphql-workshop.git\n$ cd graphql-workshop\n$ npm install\n```\n\n## Running the app\n\nTo get the app up and running (and really see if it worked), run:\n\n```\n$ npm start\n$ open http://localhost:4000\n```\n\n`npm start` will start the API server. Your browser should open up automatically to `http://localhost:4000` (if it doesn't, just open that yourself) and you should be able to start messing around with the app.\n\nHere's what you should be looking at:\n\n\u003cimg width=\"800\" alt=\"screen shot 2018-05-09 at 23 12 38\" src=\"https://user-images.githubusercontent.com/742884/46708817-7aa72300-cbf5-11e8-8851-159d991cd537.png\"\u003e\n\nGraphQL Playground is a great tool for writing and testing out queries. GraphQL Playground has some docs to explore on the right panel and offers an auto-complete-as-you-type experience. This is what GraphQL is all about, the developer experience! :-)\n\n[npm]: https://www.npmjs.com/\n[node]: https://nodejs.org\n[git]: https://git-scm.com/\n[license-badge]: https://img.shields.io/github/license/mashape/apistatus.svg\n[prs-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square\n[prs]: http://makeapullrequest.com\n[github-watch-badge]: https://img.shields.io/github/watchers/mstuart/graphql-workshop.svg?style=social\n[github-watch]: https://github.com/mstuart/graphql-workshop/watchers\n[github-star-badge]: https://img.shields.io/github/stars/mstuart/graphql-workshop.svg?style=social\n[github-star]: https://github.com/mstuart/graphql-workshop/stargazers\n[twitter]: https://twitter.com/intent/tweet?text=Check%20out%20graphql-workshop%20by%20@mstuart%20https://github.com/mstuart/graphql-workshop%20%F0%9F%91%8D\n[twitter-badge]: https://img.shields.io/twitter/url/https/github.com/mstuart/graphql-workshop.svg?style=social\n[win-path]: https://www.howtogeek.com/118594/how-to-edit-your-system-path-for-easy-command-line-access/\n[mac-path]: http://stackoverflow.com/a/24322978/971592\n[issue]: https://github.com/mstuart/graphql-workshop/issues/new\n[win-build-badge]: https://img.shields.io/appveyor/ci/mstuart/graphql-workshop.svg?style=flat-square\u0026logo=appveyor\n[win-build]: https://ci.appveyor.com/project/mstuart/graphql-workshop\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmstuart%2Fgraphql-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmstuart%2Fgraphql-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmstuart%2Fgraphql-workshop/lists"}