GraphQL API mit Swift: Schritt-für-Schritt-Tutorial für iOS und macOS

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

GraphQL API mit Swift: Schritt-für-Schritt-Tutorial



GraphQL wird aufgrund seiner Flexibilität und Effizienz zum Standard für moderne APIs. Im Gegensatz zu REST, wo Sie eine feste Datenstruktur erhalten, ermöglicht GraphQL, nur das anzufragen, was benötigt wird. In diesem Tutorial werden wir behandeln, wie man die GraphQL API in Swift-Anwendungen für iOS und macOS integriert, unter Verwendung der Bibliothek Apollo iOS. Sie lernen, Abfragen und Mutationen durchzuführen sowie Fehler zu behandeln.



1. Projekteinrichtung und Installation von Apollo iOS



Der erste Schritt besteht darin, ein neues Xcode-Projekt zu erstellen und die Abhängigkeit Apollo iOS über den Swift Package Manager (SPM) hinzuzufügen.



Schritt 1.1: Projekt erstellen

Öffnen Sie Xcode und erstellen Sie ein neues Projekt (iOS App oder macOS App). Wählen Sie SwiftUI oder UIKit – unser Beispiel wird mit beiden Plattformen funktionieren.



Schritt 1.2: Apollo iOS über SPM installieren

  1. Gehen Sie in Xcode zu File → Add Packages...
  2. Fügen Sie die Repository-URL ein: https://github.com/apollographql/apollo-ios.git
  3. Wählen Sie die neueste stabile Version (z.B. 1.15.0) und klicken Sie auf Add Package.
  4. Wählen Sie im erscheinenden Fenster Ihr Projekt aus und fügen Sie das Paket Apollo hinzu.


Schritt 1.3: Schema und Code generieren

Apollo iOS verwendet Codegenerierung basierend auf dem GraphQL-Schema. Laden Sie zunächst das Schema Ihrer API herunter (normalerweise über eine introspection query). Für den Test verwenden wir die öffentliche API Countries GraphQL (https://countries.trevorblades.com).



Erstellen Sie eine Datei schema.graphqls im Stammverzeichnis des Projekts und fügen Sie das Schema ein (es kann über GraphQL Playground bezogen werden). Fügen Sie dann ein Generierungsskript in Build Phases hinzu:



// Beispielskript in Build Phasesif which apollo-ios-cli >/dev/null; then    apollo-ios-cli generateelse    echo "Apollo CLI ist nicht installiert. Installieren Sie es mit: brew install apollo-ios-cli"fi


Installieren Sie die CLI über Homebrew: brew install apollo-ios-cli.



2. Ausführen einer einfachen GraphQL-Abfrage



Nachdem das Projekt eingerichtet ist, schreiben wir Code zum Ausführen einer Abfrage. Wir werden eine Liste von Ländern mit ihren Codes und Namen abrufen.



Schritt 2.1: GraphQL-Abfrage erstellen

Erstellen Sie im Projektordner eine Datei Countries.graphql und fügen Sie die Abfrage hinzu:



query GetCountries {    countries {        code        name    }}


Führen Sie anschließend die Codegenerierung aus (über Build oder Terminal). Apollo erstellt die Strukturen GetCountriesQuery und GetCountriesQuery.Data.



Schritt 2.2: ApolloClient konfigurieren

Erstellen Sie einen Netzwerk-Manager:



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) }()}


Schritt 2.3: Abfrage in SwiftUI ausführen

Beispiel für 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("Abfragefehler: \\(error.localizedDescription)") } } }}


Starten Sie die Anwendung. Wenn alles funktioniert,

Blogs

Buchempfehlungen