GraphQL API mit Swift: Schritt-für-Schritt-Tutorial in der Praxis

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung: Warum GraphQL und Swift das ideale Paar sind

Moderne iOS-Entwicklung ist ohne effiziente Serverkommunikation undenkbar. REST-API weicht zunehmend der flexibleren und leistungsfähigeren Technologie — GraphQL. In diesem Tutorial werden wir praktisch erarbeiten, wie man die GraphQL-API in eine Swift-App integriert, und zwar mit der Bibliothek Apollo iOS.

GraphQL ermöglicht es, genau die Daten anzufragen, die benötigt werden — nicht mehr und nicht weniger. Für Swift bedeutet das weniger Datenverkehr, schnellere Arbeitsabläufe und vereinfachten Code. Wir gehen den gesamten Weg: von der Projekteinrichtung bis zur Ausführung komplexer Abfragen und Mutationen.



1. Projekteinrichtung und Installation von Apollo iOS

Der erste Schritt ist die Vorbereitung des Xcode-Projekts und die Installation der Abhängigkeiten. Der bequemste Weg ist über den Swift Package Manager.



1.1 Ein neues Projekt erstellen

Öffnen Sie Xcode und erstellen Sie ein neues Projekt (iOS App oder macOS App). Wählen Sie SwiftUI oder UIKit — das ist nicht entscheidend. Nennen wir es GraphQLDemo.



1.2 Hinzufügen von Apollo iOS über SPM

  1. Gehen Sie in Xcode zu: File → Add Package Dependencies...
  2. Fügen Sie die Repository-URL ein: https://github.com/apollographql/apollo-ios.git
  3. Wählen Sie die neueste stabile Version und klicken Sie auf Add Package.
  4. Stellen Sie sicher, dass das Paket zum Target Ihrer App hinzugefügt wurde.


1.3 Codegenerierung des Schemas

Apollo iOS verwendet Codegenerierung. Dafür benötigen wir eine Schema-Datei .graphqls (normalerweise vom Server heruntergeladen) und Abfragedateien .graphql.

// Projektstruktur:// GraphQLDemo/// ├── GraphQL/// │   ├── schema.graphqls      // Serverschema// │   ├── Queries.graphql      // Abfragen// │   └── Mutations.graphql    // Mutationen

Nachdem Sie die Dateien hinzugefügt haben, starten Sie die Codegenerierung über das Terminal:

cd /pfad/zum/projekt./Pods/Apollo/apollo-ios-cli --download-schema --endpoint=https://ihr-server/graphql./Pods/Apollo/apollo-ios-cli --generate

Jetzt haben Sie generierte Swift-Dateien mit Typen und Abfragen.



2. Basisabfrage (Query) in Swift

Lassen Sie uns eine einfache Abfrage zum Abrufen einer Benutzerliste durchgehen. Angenommen, unser Schema enthält den Typ User mit den Feldern id, name, email.



2.1 Erstellen einer .graphql-Datei

Erstellen Sie im Ordner GraphQL eine Datei Queries.graphql:

query GetUsers {  users {    id    name    email  }}


2.2 Ausführen der Abfrage in Swift

Zuerst initialisieren wir den Apollo-Client:

import Apollo

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

Jetzt führen wir die Abfrage in einem beliebigen ViewController oder ViewModel aus:

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("Fehler: \\(error.localizedDescri

Blogs

Buchempfehlungen