Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GraphQl, Front queries made easy

GraphQl, Front queries made easy

How to deal with graphql on client-side

Igor Halfeld

December 01, 2018
Tweet

More Decks by Igor Halfeld

Other Decks in Programming

Transcript

  1. "Analisarmos alternativas, como o REST. (…) Ficamos frustrados com as

    diferenças entre os dados que queríamos e as requests que eram necessárias para obtê-los.” Lee Byron
  2. REST tem vários endpoints em que cada um retorna dados

    fixos. GraphQl tem um único endpoint que retorna uma estrutura flexível.
  3. REST GET - /users/:id { “name”: “Igor Halfeld”, “email”: “[email protected]”,

    “state”: “RJ" } GraphQl POST - /graphql { “data”: { “name”: “Igor Halfeld” } } { query { Users (id: “666") { name } } }
  4. { query { users { name, email } } }

    { query { users (id: “666”) { name, email }
 } } GET - /users/:id GET - /users
  5. { mutation { createUser ( name: "Igor Luiz”, email: “[email protected]"

    ) { name, email } } } CREATE - /users { mutation { updateUser ( name: “Halfeld Igor” ) { name, email } } } PUT - /users/:id
  6. type Users { name: String! email: String! skills: [String]! addresses:

    [Address] } type Address { street: String, number: Number } GraphQl SDL (Schema Definition Language)
  7. { Query { users { admin (role: ADMIN) { …userFields

    } accountants (role: ACCOUNTANT) { …userFields } } } } fragment userFields on User { user, name } Fragments
  8. { Query { users ($id: ID) { name, email }

    } } { id: “666" } Variables
  9. Certeza que vai fazer a query de forma certa. Cache

    built-it: performance. Consistência na UI: Cache reativo.