Update readme for step 1.

This commit is contained in:
James Harton 2018-04-08 09:08:06 +12:00
parent 13621e67df
commit b4a66b9c79

View file

@ -1,15 +1,28 @@
# Wellington Elixir Meetup GraphQL Lightning Talk
## Because I counldn't think of a snappier title
# What the heck is GraphQL anyway?
This is a very quick overview of what GraphQL is and what it's useful for. A lot of this info can be gleaned directly from the [Absinthe](https://absinthe-graphql.org/) documentation.
According to [graphql.org](https://graphql.org/) GraphQL is "A query language
for your API" which is really only part of it.
Things we're going to cover in this presentation:
[Demo time](https://www.graphqlhub.com/playground?query={%0A%20%20graphQLHub%0A%20%20giphy%20{%0A%09%09random(tag%3A%22graphql%22)%20{%0A%20%20%20%20%09id%0A%20%20%20%20%20%20url%0A%20%20%20%20%20%20images%20{%0A%20%20%20%20%20%20%20%20original%20{%0A%20%20%20%20%20%20%20%20%20%20url%0A%20%20%20%20%20%20%20%20}%0A%20%20%20%20%20%20}%0A%20%20%09}%0A%20%20}%0A})
* What the heck is GraphQL anyway?
* Setting it up with Phoenix
* Handling Queries
* Handling Mutations
* Handling Subscriptions
* Extra for experts
GraphQL is a specification for the GraphQL query language and how servers and
clients should interact to implement those queries. The [GraphQL
specification](https://github.com/facebook/graphql) is maintained by Facebook
and should probably be treated with care (anyone who has had to maintain a
react-native app knows what I'm talking about). Facebook's philosophy of "move
fast and break things" is great for products but is not great for software
dependencies.
To get started checkout the `step-1` branch.
Still, there are plenty of open source implementations of the spec now and you
don't need to rely on Facebook's implementations of the server or client. At
this time my gut feeling is still "avoid react/relay" but I know plenty of
people who have and are building successful apps with them.
Notable efforts include [Apollo](https://www.apollographql.com/), developed by
the [Meteor team](https://www.meteor.com/) it includes a JavaScript server,
browser client and a bunch of other stuff (like bindings for various JavaScript
frameworks). We'll be using the Apollo client in our demonstrations today.
Still, this is an Elixir talk so you're probably most interested in hearing
about [Absinthe](https://absinthe-graphql.org/). Check out the `step-2` branch
to learn about it.