Skip to content

Speedy1991/graphql_workshop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Arthur Bayr
Feb 6, 2021
3ca4203 · Feb 6, 2021

History

30 Commits
Feb 6, 2021
Feb 6, 2021
Feb 6, 2021
Feb 6, 2021
Feb 6, 2021
Feb 6, 2021
Feb 6, 2021
Feb 6, 2021
Feb 6, 2021
Feb 6, 2021
Feb 6, 2021
Feb 6, 2021
May 24, 2019
Apr 22, 2019
May 24, 2019
Feb 6, 2021
May 24, 2019
May 24, 2019
May 19, 2019
Jan 3, 2021

Repository files navigation

Introduction to GraphQL and Graphene

Workshop Outline

  • TypeDefs
  • Query
  • Mutation
  • GraphQL Schema Language

System Requirements


Follow one of the installation instructions (1,2)

This is the minimum workshop setup. Please prepare the project as described below.

1) Pre-Workshop Instructions/Requirements (install)

  • git clone https://github.com/Speedy1991/graphql_workshop.git
  • cd graphql_workshop
  • If you want to use a virtual environment click here for instructions
  • pip install -r requirements.txt
  • python manage.py migrate
  • python manage.py loaddata assets/initial (Installed 91 object(s) from 1 fixture(s))
  • python manage.py runserver

2) Pre-Workshop Instructions/Requirements (dockerized)

  • git clone https://github.com/Speedy1991/graphql_workshop.git
  • cd graphql_workshop
  • docker-compose up --force-recreate --build

Test your setup

  • Open your browser and visit http://127.0.0.1:8000/admin and try to login with admin:12345

Exercise overview

  1. Write your first TypeDefs and resolvers
  2. Extend your TypeDefs with more complex resolvers
  3. Refactor with django-graphene
  4. Write a custom resolver
    • Add Query Arguments
  5. Write a mutation
  6. Refactor
    • Replace mutation arguments with an InputType
    • Use EnumType
  7. Interfaces
  8. Polymorphic & interfaces
  9. Some LiveCoding with AbstractTypes, etc.

Working through it

This is a very exercise-heavy workshop. You'll finde the exercises in the graphql_workshop/exercise[number] directory. Don't forget to change the used schema in the settings.

You find some helpful content on the Docs:

Helpful shortcuts

  • TODO: This is your job
  • DOCS: This will give you a link to the specific doc page
  • DJANGO: This will help you with some django specific code
  • HINT: This will give you some useful tips
  • QUESTION: Try to answer the question yourself - if you don't find the answer, feel free to ask :)

Django Cheatsheet

  • SELECT * FROM <table> -> <ModelName>.objects.all()
  • SELECT * FROM <table> WHERE id=<id> -> <ModelName>.objects.get(id=id) (raises if not exist)

Database overview

Database overview

License

This material is available for private, non-commercial use under the GPL version 3.

If you would like to use this material to conduct your own workshop, please contact me at arthur.holz.91@gmail.com

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages