GraphQL API com Swift: tutorial passo a passo para iOS e macOS

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

GraphQL API com Swift: tutorial passo a passo



GraphQL está se tornando um padrão para APIs modernas devido à sua flexibilidade e eficiência. Ao contrário do REST, onde você recebe uma estrutura de dados fixa, o GraphQL permite solicitar apenas o que é necessário. Neste tutorial, vamos abordar como integrar a API GraphQL em aplicativos Swift para iOS e macOS, usando a biblioteca Apollo iOS. Você aprenderá a executar consultas, mutações e lidar com erros.



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



O primeiro passo é criar um novo projeto Xcode e adicionar a dependência Apollo iOS via Swift Package Manager (SPM).



Passo 1.1: Criação do projeto

Abra o Xcode e crie um novo projeto (iOS App ou macOS App). Escolha SwiftUI ou UIKit — nosso exemplo funcionará com ambas as plataformas.



Passo 1.2: Instalação do Apollo iOS via SPM

  1. No Xcode, vá para File → Add Packages...
  2. Cole a URL do repositório: https://github.com/apollographql/apollo-ios.git
  3. Selecione a versão estável mais recente (por exemplo, 1.15.0) e clique em Add Package.
  4. Na janela que aparecer, selecione seu projeto e adicione o pacote Apollo.


Passo 1.3: Geração do esquema e do código

O Apollo iOS usa geração de código baseada no esquema GraphQL. Primeiro, baixe o esquema da sua API (geralmente via introspection query). Para teste, usaremos a API pública Countries GraphQL (https://countries.trevorblades.com).



Crie um arquivo schema.graphqls na raiz do projeto e coloque o esquema nele (pode ser obtido via GraphQL Playground). Em seguida, adicione o script de geração em Build Phases:



// Exemplo de script em Build Phasesif which apollo-ios-cli >/dev/null; then    apollo-ios-cli generateelse    echo "Apollo CLI não está instalado. Instale via: brew install apollo-ios-cli"fi


Instale a CLI via Homebrew: brew install apollo-ios-cli.



2. Executando uma consulta GraphQL básica



Agora que o projeto está configurado, vamos escrever o código para executar uma consulta. Iremos obter uma lista de países com seus códigos e nomes.



Passo 2.1: Criação da consulta GraphQL

Na pasta do projeto, crie um arquivo Countries.graphql e adicione a consulta:



query GetCountries {    countries {        code        name    }}


Depois disso, execute a geração de código (via Build ou terminal). O Apollo criará as estruturas GetCountriesQuery e GetCountriesQuery.Data.



Passo 2.2: Configuração do ApolloClient

Crie um gerenciador de rede:



import Apollo

class NetworkManager { static let shared = NetworkManager() private(set) lazy var apollo: ApolloClient = { let url = URL(string: "https://countries.trevorblades.com")! return ApolloClient(url: url) }()}


Passo 2.3: Executando a consulta em SwiftUI

Exemplo para SwiftUI:



import SwiftUI

struct ContentView: View { @State private var countries: [GetCountriesQuery.Data.Country] = [] var body: some View { List(countries, id: \\.code) { country in Text("\\(country.name) (\\(country.code))") } .onAppear { loadCountries() } } func loadCountries() { NetworkManager.shared.apollo.fetch(query: GetCountriesQuery()) { result in switch result { case .success(let graphQLResult): if let countries = graphQLResult.data?.countries { self.countries = countries } case .failure(let error): print("Erro na consulta: \\(error.localizedDescription)") } } }}


Execute o aplicativo. Se tudo estiver correto, você verá a lista de países.

Blogs

Book Recommendations