Arquitetura REST e GraphQL

E o desenvolvimento de APIs

Elint
ElintTech
Published in
2 min readJul 27, 2022

--

As APIs, sigla em inglês para Application Programming Interface, tornaram-se parte importante do desenvolvimento web e aplicativos. Elas são imprescindíveis para as empresas que oferecem serviços por meio da internet e plataformas móveis.

De forma simples, APIs podem ser definidas como mecanismos que permitem que dois componentes de software se comuniquem usando um conjunto de definições e protocolos. Ou seja, permitem que uma aplicação se comunique com outras sem precisar saber como elas foram implementadas — tanto pode ser um servidor, um cliente ou um aplicativo que se comunica com um servidor.

Existem diversos estilos de arquitetura de API, sendo REST (Representational State Transfer) e GraphQL (Graph Query Language) duas das mais utilizadas.

REST

REST é uma das arquiteturas mais populares e flexíveis e pode ser definida como um conjunto de princípios e pré-definições necessários para a criação de um projeto com interfaces bem definidas. Ela estabelece diretrizes para a transferência de representações de recursos entre clientes e servidores na web.

Assim como toda comunicação entre uma API e outros recursos é feita utilizando HTTP, a arquitetura REST utiliza um conjunto de métodos como GET, PUT, DELETE e assim por diante, que os clientes podem usar para acessar os dados do servidor. Além disso, ao utilizar uma API REST é obrigatório formar as requisições em um formato JSON válido.

A principal característica de uma API REST é a ausência de estado. A ausência de estado significa que os servidores não salvam dados do cliente entre as solicitações. As solicitações do cliente ao servidor são semelhantes às URLs que você digita no navegador para visitar um site. A resposta do servidor corresponde a dados simples, sem a renderização gráfica típica de uma página da Web.

Quais são os principais benefícios das APIs REST?

  • Integração;
  • Flexibilidade;
  • Expansão e escalabilidade;
  • Facilidade de manutenção.

GraphQL

GraphQL é um conceito mais recente que o REST, lançado oficialmente pelo Facebook em 2012, tornando-se open source 3 anos depois. O GraphQL, por ser uma nova forma de solicitar dados para um servidor, é uma linguagem de consulta (query language), especificação e coleção de ferramentas desenvolvida para operar sobre um único endpoint através do HTTP, que otimiza o desempenho e a flexibilidade.

Um dos grandes benefícios da arquitetura GraphQL é a capacidade de resolver diversas questões não endereçadas pelo REST, como por exemplo: controle de versão da API; busca excessiva (overfetching) / insuficiente (underfetching) por permitir a extração somente do dado que é necessário, desempenho lento de grandes aplicativos mobile; redução dos custos de transferência de dados, tanto no lado do servidor quanto no lado do cliente.

--

--