- TypeDefs
- Query
- Mutation
- GraphQL Schema Language
- git v2 or greater
- python3.11 or greater + pip (maybe a lower version will work too - please try it yourself)
This is the minimum workshop setup. Please prepare the project as described below.
git clone https://github.com/Speedy1991/strawberry-workshop.git
cd strawberry-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/data.json
(Installed 206 object(s) from 1 fixture(s))python manage.py runserver
- Open your browser and visit
http://127.0.0.1:8000/admin/
and try to login withroot:toor
- The GraphiQL endpoint is at
http://127.0.0.1:8000/graphql/
You will have about 10 min per exercise. Do not forget to reload your graphiql endpoint after you changed the schema to refelect the changes
- Exercise 1: Write your first TypeDefs and resolvers
- Exercise 2: Extend your TypeDefs with more complex resolvers
- Exercise 3: Refactor
- Exercise 4: Write a mutation; Add Field Arguments
- Exercise 5: Interfaces
- Let's talk about ASGI/Starlette and so on
- Homework: Check out strawberry-django
This is a very exercise-heavy workshop. You'll find the exercises in the strawberry_workshop/exercise[number] directory. Don't forget to change the used schema in the urls.py.
You find some helpful content on the Docs:
- 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 :)
SELECT * FROM <table>
-><ModelName>.objects.all()
SELECT * FROM <table> WHERE id=<id>
-><ModelName>.objects.get(id=id)
(raises if not exist)
Docs: https://strawberry.rocks/
Discord: https://strawberry.rocks/discord (be friendly, this is an awesome community)
Github: https://github.com/strawberry-graphql/strawberry
Creator: Patrick Thank you so much for creating this awesome framework
Core Devs: bellini666, DoctorJohn, erikwrede, skilkis
In this context, we should generally express our gratitude to all open-source developers and contributors.
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
If you enjoyed the workshop, Patrick would surely appreciate a small sponsorship to support his open-source work going forward.