From b4a66b9c7930927c68be7bf03c1b450c0017e686 Mon Sep 17 00:00:00 2001 From: James Harton Date: Sun, 8 Apr 2018 09:08:06 +1200 Subject: [PATCH] Update readme for step 1. --- README.md | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 9be5b48..e6fb37f 100644 --- a/README.md +++ b/README.md @@ -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.