how to graphql

14
How To GraphQL October 10, 2017 Tomasz Bąk [email protected]

Upload: tomasz-bak

Post on 28-Jan-2018

191 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: How to GraphQL

How To GraphQLOctober 10, 2017Tomasz Bą[email protected]

Page 2: How to GraphQL

About me

● software developer and architect, speaker, trainer○ 12+ years of experience

○ 4+ years senior frontend developer

■ Ember, Angular, React

● co-founder of selleo.com

● http://selleo.com/people/tomasz-bak

Page 3: How to GraphQL
Page 4: How to GraphQL
Page 5: How to GraphQL

Agenda

What is GraphQL?

Why GraphQL?

How to GraphQL?

Workshops

Page 6: How to GraphQL

What is GraphQL?

Source: http://graphql.org

● a query language for your API● created by Facebook in 2012● key concepts of the GraphQL query language are

○ Hierarchical○ Product‐centric○ Strong‐typed○ Introspective

Page 7: How to GraphQL

What is GraphQL?

Source: http://graphql.org

Page 8: How to GraphQL

Why GraphQL?REST vs GraphQL

Source: https://medium.com/@ottovw/rest-api-downfalls-and-dawn-of-graphql-dd00991a0eb8

Page 9: How to GraphQL

Why GraphQL?Version Free, Strong-Typed API architecture

Page 10: How to GraphQL

Why GraphQL?Reuse of existing architecture

Page 11: How to GraphQL

graphql.orgWhy GraphQL?

● Ask for what you need, get exactly that● Get many resources in a single request● Describe what’s possible with a type system● Move faster with powerful developer tools● Evolve your API without versions● Bring your own data and code

Source: http://graphql.org

Page 12: How to GraphQL

Who’s using GraphQL?

Source: http://graphql.org

Page 13: How to GraphQL

HowToGraphql.comThe Fullstack Tutorial for GraphQL

Frontend tutorials:

● Ember + Apollo● Vue + Apollo● React + Relay● React + Apollo

Backend tutorials:

● graph.cool● graphql.js● graphql-elixir● graphql-ruby● graphql-java● graphql-python

Page 14: How to GraphQL

Workshopsgraphql-ruby (~784k total downloads)react-apollo (~241k downloads in the last month)

● Based on classic Northwind sample database● Best Practices, TDD● Signup, Signin● Dashboard with charts● CRUD, validations● Nested objects● Filtering and sorting listings