Compare commits

...
This repository has been archived on 2024-06-24. You can view files and clone it, but cannot push or open issues or pull requests.

5 commits

Author SHA1 Message Date
James Harton
6789b80c06 update go.sh 2018-04-10 12:37:51 +12:00
James Harton
75c8b30a75 Add go.sh 2018-04-10 12:35:05 +12:00
James Harton
5d606b6dd1 UPdate readme. 2018-04-09 13:05:38 +12:00
James Harton
91a5a3f486 Update readme. 2018-04-08 17:11:26 +12:00
James Harton
b4a66b9c79 Update readme for step 1. 2018-04-08 09:08:06 +12:00
3 changed files with 43 additions and 11 deletions

27
.gitignore vendored Normal file
View file

@ -0,0 +1,27 @@
# App artifacts
/_build
/db
/deps
/*.ez
# Generated on crash by the VM
erl_crash.dump
# Generated on crash by NPM
npm-debug.log
# Static artifacts
/assets/node_modules
# Since we are building assets from assets/,
# we ignore priv/static. You may want to comment
# this depending on your deployment strategy.
/priv/static/
# Files matching config/*.secret.exs pattern contain sensitive
# data and you should not commit them into version control.
#
# Alternatively, you may comment the line below and commit the
# secrets files as long as you replace their contents by environment
# variables.
/config/*.secret.exs

View file

@ -1,15 +1,13 @@
# 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 open source 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.

7
go.sh Executable file
View file

@ -0,0 +1,7 @@
#!/bin/sh
set -e
read -p "Press enter to continue to next step"
git checkout step-2
exec ./go.sh