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

Desenvolvendo uma api em GraphQL na prática

Aline
September 20, 2018

Desenvolvendo uma api em GraphQL na prática

Slides da apresentação sobre GraphQL para o Meetup Deb Java Girls.

Aline

September 20, 2018
Tweet

Other Decks in Technology

Transcript

  1. • + 8 anos exp • Backend na Ciclic •

    @aolidias • https://github.com /aoliveiradias/
  2. Agenda • O que é uma api? • Rest •

    GraphQL • Show me the code • Pontos Positivos • Pontos Negativos
  3. O que é uma api? • Application Programming Interface. •

    É uma interface para integrar sistemas. • Disponibiliza recursos do sistema para uso externo. • Muito utilizado nas arquiteturas atuais e nas principais empresas(Spotify, facebook, google).
  4. Rest • Representational State Transfer . • É um estilo

    de arquitetura. • Explora os recursos do http (GET, POST, PUT,DELETE, etc). • Define que cada requisição não possui estado ou seja ela possui todos os dados para ser concluída.
  5. Rest • GET - Busca um recurso /users ou /users/1

    • POST - Cria o recurso /users • PUT - Altera o recurso /users • DELETE - Delete o recurso /users/1
  6. • É uma especificação criada pelo facebook em 2012. •

    É uma linguagem de consulta para API. • O cliente informa os dados que deseja. • Fortemente tipada. • Não se limita ao HTTP(mas é o mais usado). • Pode ser implementado em várias linguagens. Graphql
  7. Aceita 3 tipos de requisições: • Query, para consultas; •

    Mutation, para enviar dados; • Subscription, para comunicação baseada em eventos. Graphql
  8. Graphql - Query • Pode usar método GET, mas como

    as queries geralmente são grandes, o mais usado é um POST. • Schemas: É o que vai definir cada tipo e atributo do recurso da consulta. • Resolver: É o que "resolve" a busca ou seja é que vai no banco, outra API e algum serviço realmente buscar aquele recurso. • Query: Específica qual é o resolver e qual o tipo de entrada e saída.
  9. Pontos Positivos • Desempenho: Pode fazer diversas requisições do lado

    do servidor diminuindo a latência. • Flexibilidade: O client que define quais dados quer, não sobrecarregando o servidor com consultas para dados que não vão ser usados. • Desenvolvimento: Pode ser incrementado com a demanda de seus clients(simples para se desenvolver).
  10. Pontos Negativos • Cliente precisa conhecer toda a estrutura para

    consultar. • Query responde de acordo com a consulta ou seja, caso precise de uma resposta com uma estrutura específica, um conversor deverá ser implementado para realizar a transformação de dados. • Não é bala de prata(Cache, segurança, tempo de execução dos resolvers).