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

Construindo APIs utilizando GraphQL + Serverless

Construindo APIs utilizando GraphQL + Serverless

A proposta dessa apresentação é prover um entendimento sobre o que é GraphQL e quais problemas ele resolve. Além de demonstrar uma maneira de integrá-lo à arquitetura Serverless, utilizando nodejs e AWS Cloud.

More Decks by Murilo Cezar Amêndola de Oliveira

Other Decks in Programming

Transcript

  1. Quem sou eu? • Formado em Ciência da Computação na

    Universidade Presbiteriana Mackenzie; • MBA em Arquitetura de Soluções na FIAP; • 12 anos de experiência desenvolvendo software; • Fullstack developer na Cubo Network; Murilo Cezar Amêndola de Oliveira
  2. Expectativas • Entender os conceitos sobre GraphQL e saber quando

    usá-lo. • Conseguir iniciar um projeto utilizando GraphQL e arquitetura Serverless na Cloud AWS. • Introduzir alguns conceitos para que possam pesquisar a respeito e se aprofundar na tecnologia.
  3. • Por que o GraphQL existe? • O que é

    GraphQL? • Aplicação: GraphQL + Serverless • AppSync e Apollo Engine • Encerramento Agenda
  4. Agenda • Por que o GraphQL existe? • O que

    é GraphQL? • Aplicação: GraphQL + Serverless • AppSync e Apollo Engine • Encerramento
  5. Por que o GraphQL existe? RESTful Routing Dado que um

    servidor possui uma coleção de registros, deveríamos possuir uma URL e um HTTP Request Method que nos permita utilizar esses registros.
  6. Agenda • Por que o GraphQL existe? • O que

    é GraphQL? • Aplicação: GraphQL + Serverless • AppSync e Apollo Engine • Encerramento
  7. O que é GraphQL? GraphQL is a query language for

    your API, and a server-side runtime for executing queries by using a type system you define for your data. GraphQL isn't tied to any specific database or storage engine and is instead backed by your existing code and data.
  8. O que é GraphQL? query { } query { user(id:"37")

    { } } query { user(id:"37") { friends { } } } query { user(id:"37") { friends { company { name } } } } { "data": { "user": { "friends": [{ "company": { "name": "Cubo" } }] } } }
  9. Agenda • Por que o GraphQL existe? • O que

    é GraphQL? • Aplicação: GraphQL + Serverless • AppSync e Apollo Engine • Encerramento
  10. Aplicação: GraphQL + Serverless - GraphQL Schema Schema Definition Language

    (SDL) "type User { id: String! name: String! company: Company! Position: Position! friends: [User] }" • Type • Query • Resolver • Mutation • Subscription "type Query { user(id: String!): User }" { Query: { user: (root, args) => ... } }
  11. Agenda • Por que o GraphQL existe? • O que

    é GraphQL? • Aplicação: GraphQL + Serverless • AppSync e Apollo Engine • Encerramento
  12. Agenda • Por que o GraphQL existe? • O que

    é GraphQL? • Aplicação: GraphQL + Serverless • AppSync e Apollo Engine • Encerramento
  13. Encerramento https://github.com/muriloamendola/graphql-serverless • Performance (N + 1): Considerar o uso

    de Cache (DataLoader) • Não existe bala de prata • Tempo de execução da Lambda function