GraphQL o que é?
Criar o próximo grande aplicativo móvel é um processo caro e demorado. Levar sua idéia à vida exige tempo, energia e recursos financeiros. Explorarei como novas tecnologias como o GraphQL reduzirão seu tempo de comercialização e acelerarão seu processo de desenvolvimento de aplicativos.
Este artigo explica os benefícios do uso do GraphQL em conjunto com uma plataforma de backend como serviço (BaaS – Backend as a Service), e aqui está um resumo do que você aprenderá:
- Visão geral do GraphQL
- O que é o GraphQL?
- Esquema GraphQL
- GraphQL versus REST
- Por que usar o GraphQL?
- Benefícios / Desvantagens do GraphQL
- Quando utilizar o GraphQL?
- BaaS e GraphQL trabalhando juntos
- Provedores de GraphQL BaaS
Contents
- 1 Visão geral do GraphQL
- 2 GraphQL NÃO é…
- 3 Mutations, Queries, and Subscriptions
- 4 GraphQL vs. REST
- 5 Por que usar o GraphQL?
- 6 Vantagens e desvantagens do GraphQL
- 7 Benefícios do GraphQL
- 8 Desvantagens do GraphQL
- 9 Quando utilizar o GraphQL?
- 10 Implantando o GraphQL com um BaaS
- 11 Provedores de backend que utilizam GraphQL
Visão geral do GraphQL
O GraphQL é uma linguagem de consulta para APIs e um runtime para atender a consultas com dados existentes. O GraphQL fornece uma descrição completa e compreensível dos dados em sua API, oferece aos clientes o poder de solicitar exatamente o que eles precisam e nada mais. Facilita a evolução das APIs ao longo do tempo e fornece poderosas ferramentas ao desenvolvedor.
O GraphQL nasceu dentro do Facebook a partir de uma necessidade técnica do time de engenharia de software. Quando criavam os aplicativos móveis do Facebook, precisavam de uma API de busca de dados suficientemente poderosa para descrever todo o Facebook, mas simples o suficiente para ser fácil de aprender e usar pelo desenvolvedores de produtos. Desta forma, o GraphQL foi desenvolvido para atender a uma necessidade particular. Atualmente, ele fornece centenas de bilhões de chamadas de API por dia. A tecnologia foi aberta pelo Facebook (open-source) e está disponível no Graphql.org.
GraphQL NÃO é…
- O GraphQL não é um banco de dados.
- O GraphQL não substitui o SQL.
- O GraphQL não é uma ferramenta do lado do servidor.
- O GraphQL não é específico do React.
Mutations, Queries, and Subscriptions
O esquema do GraphQL é direto e formado com 03 tipos principais que suportam conjuntos distintos de ações:
- Mutações são usadas para criar, atualizar e excluir dados.
- As consultas são utilizadas pelo cliente para solicitar os dados do backend.
- As assinaturas são uma maneira de criar e ter um relacionamento em tempo real com o servidor.
GraphQL vs. REST
Uma boa maneira de entender o GraphQL é dizer que está entre SOAP e REST, pegando pedaços de cada um. Aqui está uma rápida visão geral das principais diferenças entre as APIs GrapQL e REST.
Descrição | GraphQL | REST |
Endpoint | Single | Multiple |
HTTP Semântica | Query, Mutation, Subscription | GET, POST, PUT, DELETE |
Códigos de erro | Código 200 único | Diversos códigos de erro |
Cacheable | Não | Sim |
Stateless | Sim | Sim |
Overfetching | Não | Sim |
Underfetching | Não | Sim |
Por que usar o GraphQL?
O GraphQL resolve vários problemas NÃO endereçados pelo REST, incluindo:
- Controle de versão da API
- Busca excessiva / insuficiente
- Desempenho lento de grandes aplicativos móveis
Vantagens e desvantagens do GraphQL
Tudo certo! Agora você entende o que é o GraphQL e por que o Facebook o criou, mas quais são os benefícios para o seu aplicativo? Aqui está uma lista de como o GraphQL o beneficiará.
Benefícios do GraphQL
- Reduza os custos de transferência de dados, tanto no lado do servidor (transferência) quanto no lado do cliente (banda 4G).
- Garanta tempos de resposta mais rápidos, mesmo em conexões lentas.
- Tempos de carregamento mais rápidos para seu aplicativo móvel.
- A simplicidade leva a um backend mais estável.
Desvantagens do GraphQL
- Curva de aprendizado. Você já conhece o REST e precisará aprender o GraphQL.
- Armazenamento em cache. É mais difícil com o GraphQL.
- As consultas sempre retornam o código de status 200.
Quando utilizar o GraphQL?
Aqui estão alguns casos de uso que você se beneficiará com o GraphQL.
- Projetos que requerem processar dados rapidamente.
- Aplicativos com alta taxa de transferência de dados.
- Projetos que precisam recuperar informações de vários bancos de dados.
- Colete dados de diferentes stacks.
- Integração com serviços de terceiros.
- Implementações de várias plataformas (Web, dispositivos móveis, IoT)
Implantando o GraphQL com um BaaS
O uso de um BaaS fornecerá os seguintes benefícios:
- Deixe você se concentrar no seu produto principal sem reinventar a roda.
- Automação em relação ao gerenciamento de bancos de dados, infraestrutura em execução etc.
- Reduza o custo total de desenvolvimento.
- Você reunirá as vantagens de um back-end como serviço com a flexibilidade e simplicidade que o GraphQL oferece. Essa configuração permite que um desenvolvedor crie seus esquemas e os implemente automaticamente em um ambiente de infraestrutura pronto para uso.
Provedores de backend que utilizam GraphQL
Aqui está uma lista de back-end como provedores de serviços que suportam o GraphQL. Algumas empresas fornecerão hospedagem gerenciada de back-end do GraphQL. Os outros fornecerão apenas opções de auto-hospedagem.
Back4App
Backend fácil de usar, flexível e escalável, com base no código-fonte aberto GraphQL e Parse.
Pronto para produção: Sim
Preços: Plano gratuito disponível. Os planos pagos começam em US $ 5 / mês.
Opções de hospedagem: hospedagem na nuvem com Back4App (hospedagem compartilhada e instâncias privadas) ou AWS, Azure, Google Cloud
Parse
Estrutura de back-end do NodeJS de código-fonte aberto.
Pronto para produção: Não.
Preço: Apenas download gratuito. Não há suporte ou planos pagos disponíveis.
Opções de hospedagem: pode ser implantado em qualquer nuvem. As opções padrão são AWS, Digital Ocean e Azure.
AWS Amplify
Uma biblioteca JavaScript declarativa para desenvolvimento de aplicativos usando serviços em nuvem.
Pronto para produção: Sim.
Preço: pague pelo uso na AWS. Opção de download gratuito disponível.
Opções de hospedagem: pode ser implantado em qualquer nuvem. As opções comuns são AWS, Digital Ocean e Azure.
Hasura
GraphQL em tempo real instantâneo no Postgres
Pronto para produção: Sim
Preços: Plano gratuito disponível. Os planos pagos começam em US $ 99 / mês.
Tipos de banco de dados: Postgres
Opções de hospedagem: Integrado ao Heroku. A implantação também está disponível na AWS, Azure e Google Cloud.
GraphCool
Backend como serviço de código aberto e auto-hospedado para desenvolver back-end GraphQL sem servidor.
Pronto para produção: Sim
Preços: Plano gratuito disponível. Os planos pagos começam em US $ 35 / mês.
Tipos de banco de dados: MySQL, Aurora.
Opções de hospedagem: hospedagem na nuvem GraphCool ou auto-hospedagem com o Docker.
Prisma
Camada de abstração de banco de dados que transforma seus bancos de dados em APIs do GraphQL com a criação, leitura, atualização e exclusão de procedimentos e capacidades em tempo real.
Pronto para produção: Sim
Preços: Planos gratuitos disponíveis. Os planos pagos começam em US $ 15 / usuário.