GraphQL API com Swift: tutorial prático passo a passo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: por que GraphQL e Swift são a combinação perfeita

O desenvolvimento iOS moderno é impensável sem uma interação eficiente com o servidor. A API REST está gradualmente dando lugar a uma tecnologia mais flexível e performática — o GraphQL. Neste tutorial, vamos abordar como integrar a API GraphQL em um aplicativo Swift na prática, usando a biblioteca Apollo iOS.

O GraphQL permite solicitar exatamente os dados necessários — nem mais, nem menos. Para o Swift, isso significa redução de tráfego, aceleração do funcionamento e simplificação do código. Vamos percorrer o caminho completo: desde a configuração do projeto até a execução de consultas e mutações complexas.



1. Configuração do projeto e instalação do Apollo iOS

O primeiro passo é preparar o projeto Xcode e instalar as dependências. A maneira mais conveniente é através do Swift Package Manager.



1.1 Criando um novo projeto

Abra o Xcode e crie um novo projeto (iOS App ou macOS App). Escolha SwiftUI ou UIKit — não é essencial. Vamos chamá-lo de GraphQLDemo.



1.2 Adicionando Apollo iOS via SPM

  1. No Xcode, vá em: File → Add Package Dependencies...
  2. Cole a URL do repositório: https://github.com/apollographql/apollo-ios.git
  3. Selecione a versão estável mais recente e clique em Add Package.
  4. Certifique-se de que o pacote foi adicionado ao target do seu aplicativo.


1.3 Geração do código do schema

O Apollo iOS usa geração de código. Para isso, precisamos de um arquivo de schema .graphqls (geralmente baixado do servidor) e arquivos de consulta .graphql.

// Estrutura do projeto:// GraphQLDemo/// ├── GraphQL/// │   ├── schema.graphqls      // Schema do servidor// │   ├── Queries.graphql      // Consultas// │   └── Mutations.graphql    // Mutações

Após adicionar os arquivos, execute a geração de código pelo terminal:

cd /caminho/para/o/projeto./Pods/Apollo/apollo-ios-cli --download-schema --endpoint=https://seu-servidor/graphql./Pods/Apollo/apollo-ios-cli --generate

Agora você tem arquivos Swift gerados com tipos e consultas.



2. Consulta básica (Query) em Swift

Vamos analisar a consulta mais simples para obter uma lista de usuários. Suponha que nosso schema contenha o tipo User com os campos id, name, email.



2.1 Criando o arquivo .graphql

Na pasta GraphQL, crie o arquivo Queries.graphql:

query GetUsers {  users {    id    name    email  }}


2.2 Executando a consulta em Swift

Primeiro, inicializamos o cliente Apollo:

import Apollo

class NetworkManager { static let shared = NetworkManager() let apollo: ApolloClient private init() { let url = URL(string: "https://seu-servidor/graphql")! apollo = ApolloClient(url: url) }}

Agora, execute a consulta em qualquer ViewController ou ViewModel:

import SwiftUI

struct UsersView: View { @State private var users: [GetUsersQuery.Data.User] = [] var body: some View { List(users, id: \\.id) { user in VStack(alignment: .leading) { Text(user.name) .font(.headline) Text(user.email) .font(.subheadline) .foregroundColor(.gray) } } .onAppear { loadUsers() } } private func loadUsers() { NetworkManager.shared.apollo.fetch(query: GetUsersQuery()) { result in switch result { case .success(let graphQLResult): if let usersData = graphQLResult.data?.users { self.users = usersData } case .failure(let error): print("Erro: \\(error.localizedDescri

Blogs

Book Recommendations