GraphQL API con Swift: tutorial práctico paso a paso

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: por qué GraphQL y Swift son la pareja ideal

El desarrollo moderno de iOS es impensable sin una interacción eficiente con el servidor. REST API está cediendo gradualmente el paso a una tecnología más flexible y eficiente: GraphQL. En este tutorial, veremos cómo integrar GraphQL API en una aplicación Swift en la práctica, utilizando la biblioteca Apollo iOS.

GraphQL permite solicitar exactamente los datos que se necesitan, ni más ni menos. Para Swift, esto significa reducir el tráfico, acelerar el rendimiento y simplificar el código. Recorreremos el camino completo: desde la configuración del proyecto hasta la ejecución de consultas y mutaciones complejas.



1. Configuración del proyecto e instalación de Apollo iOS

El primer paso es preparar el proyecto de Xcode e instalar las dependencias. La forma más conveniente es a través de Swift Package Manager.



1.1 Creación de un nuevo proyecto

Abra Xcode y cree un nuevo proyecto (iOS App o macOS App). Elija SwiftUI o UIKit, no es relevante. Lo llamaremos GraphQLDemo.



1.2 Adición de Apollo iOS a través de SPM

  1. En Xcode, vaya a: File → Add Package Dependencies...
  2. Pegue la URL del repositorio: https://github.com/apollographql/apollo-ios.git
  3. Seleccione la última versión estable y haga clic en Add Package.
  4. Asegúrese de que el paquete se haya agregado al target de su aplicación.


1.3 Generación de código del esquema

Apollo iOS utiliza generación de código. Para esto necesitamos un archivo de esquema .graphqls (generalmente descargado del servidor) y archivos de consulta .graphql.

// Estructura del proyecto:// GraphQLDemo/// ├── GraphQL/// │   ├── schema.graphqls      // Esquema del servidor// │   ├── Queries.graphql      // Consultas// │   └── Mutations.graphql    // Mutaciones

Después de agregar los archivos, ejecute la generación de código a través de la terminal:

cd /ruta/al/proyecto./Pods/Apollo/apollo-ios-cli --download-schema --endpoint=https://su-servidor/graphql./Pods/Apollo/apollo-ios-cli --generate

Ahora tiene archivos Swift generados con tipos y consultas.



2. Consulta básica (Query) en Swift

Analicemos la consulta más simple para obtener una lista de usuarios. Supongamos que nuestro esquema contiene el tipo User con los campos id, name, email.



2.1 Creación del archivo .graphql

En la carpeta GraphQL, cree el archivo Queries.graphql:

query GetUsers {  users {    id    name    email  }}


2.2 Ejecución de la consulta en Swift

Primero, inicializamos el cliente Apollo:

import Apollo

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

Ahora ejecutamos la consulta en cualquier ViewController o 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("Error: \\(error.localizedDescri

Blogs

Book Recommendations