Integração do Apollo Client com APIs GraphQL no React

Um guia completo sobre como utilizar Apollo Client para interagir com APIs GraphQL em aplicações React.

Introdução ao Apollo Client e GraphQL

O Apollo Client é uma biblioteca poderosa que facilita a interação com APIs GraphQL em aplicações React. Com ele, você pode gerenciar o estado da sua aplicação e fazer requisições de forma otimizada. Vamos explorar como integrá-lo em nosso projeto!

O que é GraphQL?

GraphQL é uma linguagem de consulta para APIs, que permite aos desenvolvedores solicitar exatamente os dados que precisam, evitando o excesso de dados que muitas vezes acontece em APIs REST. Com GraphQL, você pode consultar múltiplos recursos em uma única requisição, tornando a comunicação com o servidor mais eficiente.

Instalando o Apollo Client

Para começar a usar o Apollo Client, precisamos instalá-lo em nosso projeto React. Execute o seguinte comando:

npm install @apollo/client graphql

Este comando instalará tanto o Apollo Client quanto o GraphQL, que é necessário para fazer as consultas.

Configurando o Apollo Client

Após a instalação, precisamos configurar o Apollo Client. Aqui está um exemplo básico de como fazer isso:

import { ApolloClient, InMemoryCache } from '@apollo/client';

const client = new ApolloClient({
  uri: 'https://sua-api-graphql.com/graphql',
  cache: new InMemoryCache(),
});

Neste código, estamos criando uma instância do Apollo Client e definindo a URI da nossa API GraphQL. O cache em memória ajuda a otimizar as requisições, armazenando os dados já recuperados.

Usando o Apollo Provider

Para que o Apollo Client funcione corretamente com o React, precisamos envolver a aplicação com o ApolloProvider:

import { ApolloProvider } from '@apollo/client';

function App() {
  return (
    <ApolloProvider client={client}>
      {/* sua aplicação aqui */}
    </ApolloProvider>
  );
}

O ApolloProvider permite que toda a árvore de componentes acesse o cliente Apollo, facilitando a realização de consultas e mutações.

Fazendo Consultas com Apollo Client

Para realizar consultas, utilizamos o hook useQuery. Veja um exemplo:

import { useQuery, gql } from '@apollo/client';

const GET_LIVROS = gql`
  query GetLivros {
    livros {
      id
      titulo
      autor
    }
  }
`;

function Livros() {
  const { loading, error, data } = useQuery(GET_LIVROS);

  if (loading) return <p>Carregando...</p>;
  if (error) return <p>Erro: {error.message}</p>;

  return (
    <ul>
      {data.livros.map(livro => (
        <li key={livro.id}>{livro.titulo} - {livro.autor}</li>
      ))}
    </ul>
  );
}

Neste exemplo, estamos definindo uma consulta GraphQL para recuperar uma lista de livros. O useQuery nos fornece o estado da consulta, incluindo se ainda está carregando, se ocorreu algum erro e os dados retornados.

Lidando com Mutations

Além de consultas, também podemos realizar mutações utilizando o hook useMutation. Veja como:

import { useMutation, gql } from '@apollo/client';

const ADD_LIVRO = gql`
  mutation AddLivro($titulo: String!, $autor: String!) {
AddLivro(titulo: $titulo, autor: $autor) {
      id
      titulo
      autor
    }
  }
`;

function AdicionarLivro() {
  let inputTitulo;
  let inputAutor;

  const [addLivro] = useMutation(ADD_LIVRO);

  return (
    <div>
      <input ref={node => inputTitulo = node} placeholder="Título" />
      <input ref={node => inputAutor = node} placeholder="Autor" />
      <button onClick={() => {
        addLivro({ variables: { titulo: inputTitulo.value, autor: inputAutor.value } });
        inputTitulo.value = '';
        inputAutor.value = '';
      }}>Adicionar Livro</button>
    </div>
  );
}

Neste código, criamos um formulário simples para adicionar um livro. Ao clicar no botão, a mutação é executada com os dados do formulário.

Conclusão

Integrar o Apollo Client com React é uma forma eficiente de trabalhar com APIs GraphQL. Com ele, você pode gerenciar seu estado de forma otimizada e realizar consultas e mutações de maneira prática. Explore mais sobre o Apollo Client e descubra como ele pode trazer benefícios para suas aplicações!

O Apollo Client é uma ferramenta essencial para desenvolvedores que desejam trabalhar com GraphQL de forma eficiente em aplicações React. Ele não apenas simplifica o processo de busca e manipulação de dados, mas também oferece recursos avançados como cache e gerenciamento de estado. Com a crescente popularidade do GraphQL, entender como integrar o Apollo Client se torna uma habilidade valiosa no mercado de trabalho. Neste guia, você aprenderá desde a configuração básica até a realização de consultas e mutações, permitindo construir aplicações robustas e escaláveis.

Algumas aplicações:

  • Desenvolvimento de aplicações web dinâmicas.
  • Integração com sistemas que utilizam GraphQL.
  • Gerenciamento eficiente de estado global.

Dicas para quem está começando

  • Inicie com a documentação oficial do Apollo Client.
  • Experimente exemplos de código para entender como funciona a biblioteca.
  • Participe de comunidades online para tirar dúvidas e compartilhar experiências.
  • Construa pequenos projetos para praticar a integração com GraphQL.

Contribuições de Lucas Farias

Compartilhe este tutorial: Como usar apollo-client para consumir APIs GraphQL no React?

Compartilhe este tutorial

Continue aprendendo:

Como definir uma estratégia de revalidação de cache ao consumir APIs no React?

Entenda como definir uma estratégia eficaz de revalidação de cache ao consumir APIs no React.

Tutorial anterior

Como definir queries e mutations no Apollo Client?

Entenda como utilizar o Apollo Client para gerenciar dados em suas aplicações React.

Próximo tutorial