Dustin McCraw
6/6/18
Apiv3
McFeely
Dozer
League Frontend
NextJenn
Rosetta
Erlond
I have seen all the challenges of writing both backend and clients
Representational state transfer
Define "resources" with CRUD actions
Disadvantages with multiple clients:
Advantages
https://githubengineering.com/the-github-graphql-api/
Queries mirror their response.
The clients determine what data they need.
GraphQL defines the relationships between the objects.
Clients can choose what relationships they need for their specific use case.
Each level of a query corresponds to a type. Each type has a set of available fields.
Define a Schema using scalar types
A Character has a non null name and a non null list of Episodes.
Schema takes care of all validation
Open source standard between server and clients
Can be written in any backend language using any datastore.
Query for the types it supports
An Elixir Umbrella project
Zeus: Phoenix Server using Absinthe
Hades: Ecto App (database)
Hermes: Rabbit consumer
Why Elixir?
Why Phoenix/Absinthe?
Client Libraries
#graphql channel
https://github.com/teamsnap/olympus
https://github.com/teamsnap/olympus-clients
Friday 10% time meeting
I am always free to talk graphql!