I've left a trail of commit messages that is hopefully easy to follow. I might try to make a video soon.
- Create a new Phoenix app.
- Install Absinthe and configure it to work with Phoenix.
- Create a database schema with some basic relations; Hook it up to GraphQL schema. At this point we have a naive GraphQL schema. The resolvers cause some horrible database queries to happen.
- Set up Dataloader with Absinthe to improve performance of database queries.
- Update schema and resolvers to handle arguments for filtering.
- Install dependencies
mix deps.get
- Create database
mix ecto.setup
- Create database schema and populate with data
mix ecto.drop; mix ecto.create; mix ecto.migrate; mix run priv/repo/seeds.exs
- Start the Phoenix server
mix phx.server
- Run GraphQL queries (and browse schema documentation) from your web browser at
http://localhost:4000/api/graphiql