0Pricing
Swift Academy · Lektion

Routing und Request-Verarbeitung

Definieren Sie Routen und verarbeiten Sie HTTP-Requests.

Routing und Request-Verarbeitung ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist Vapor?

Vapor ist ein beliebtes serverseitiges Swift-Webframework, das auf SwiftNIO aufbaut. Damit können Sie HTTP-Backends – APIs und Websites – vollständig in Swift schreiben und Sprache sowie sogar Modelle mit Ihrer iOS-App gemeinsam verwenden.

import Vapor

let app = try await Application.make(.detect())

Die Application und Routen

Das Application-Objekt bildet das Herzstück eines Vapor-Servers. Darauf registrieren Sie Routen: Zuordnungen einer HTTP-Methode und eines Pfads zu einer Handler-Closure, die eine Antwort zurückgibt.

app.get("hello") { req in
    "Hello, world!"
}

Hilfsmethoden für HTTP-Methoden

Vapor stellt für jedes HTTP-Verb eine Hilfsmethode bereit: app.get, app.post, app.put, app.patch und app.delete. Jede Methode akzeptiert Pfadbestandteile und einen Handler.

app.post("users") { req in
    "Created a user"
}
app.delete("users") { req in
    "Deleted a user"
}

Pfadsegmente

Übergeben Sie mehrere String-Segmente, um verschachtelte Pfade zu erstellen. Der folgende Aufruf antwortet auf GET /api/v1/status.

app.get("api", "v1", "status") { req in
    "OK"
}

Routenparameter

Verwenden Sie ein Segment mit vorangestelltem Doppelpunkt, um einen dynamischen Wert zu erfassen. Lesen Sie ihn mit req.parameters.get(_:) aus der Anfrage. Bei einer Anfrage an /users/42 wird beispielsweise 42 erfasst.

app.get("users", ":id") { req -> String in
    let id = req.parameters.get("id") ?? "unknown"
    return "User id is " + id
}

Typisierte Parameter

Sie können einen Parameter in einen konkreten Typ konvertieren, indem Sie den Typ an get übergeben. Wenn die Konvertierung fehlschlägt, gibt Vapor automatisch eine 404-Antwort zurück, sodass die Handler übersichtlich bleiben.

app.get("posts", ":id") { req -> String in
    let id = try req.parameters.require("id", as: Int.self)
    return "Post number " + String(id)
}

Query-Parameter

Lesen Sie URL-Query-Elemente über req.query aus. Für /search?term=swift können Sie den Suchbegriff direkt decodieren. Fehlende optionale Werte werden einfach als nil zurückgegeben.

app.get("search") { req -> String in
    let term = try req.query.get(String.self, at: "term")
    return "Searching for " + term
}

Routengruppen

Gruppieren Sie zusammengehörige Routen mit app.grouped(...) unter einem gemeinsamen Präfix. So vermeiden Sie wiederholte Pfadbestandteile und halten zusammengehörige Endpunkte beieinander.

let users = app.grouped("users")
users.get { req in "List users" }      // GET /users
users.post { req in "Create user" }    // POST /users

Verschiedene Antworttypen zurückgeben

Ein Handler kann einen String, einen HTTPStatus, einen benutzerdefinierten Content-Typ oder eine vollständig erstellte Response zurückgeben. Vapor weiß, wie jeder dieser Typen in eine HTTP-Antwort codiert wird.

app.delete("cache") { req -> HTTPStatus in
    // clear something
    return .noContent // 204
}

Fehler mit Abort auslösen

Lösen Sie mit Abort(_:) die vorzeitige Beendigung einer Anfrage mit einem bestimmten HTTP-Status und einer optionalen Begründung aus. Vapor wandelt dies in eine übersichtliche JSON-Fehlerantwort um.

app.get("secret") { req -> String in
    guard req.headers.first(name: "X-Key") == "open" else {
        throw Abort(.forbidden, reason: "Missing key")
    }
    return "Welcome"
}

Asynchrone Handler

Vapor 4+ unterstützt async/await vollständig. Markieren Sie die Handler-Closure als async und verwenden Sie darin try await für Datenbank- oder Netzwerkoperationen.

app.get("ping") { req async throws -> String in
    try await Task.sleep(for: .milliseconds(10))
    return "pong"
}

Kurzer Test: Routing

Überprüfen Sie Ihr Wissen über Routing.

Zusammenfassung: Routing und Anfrageverarbeitung

Sie können jetzt einen Vapor-Server konfigurieren:

  • Registrieren Sie Routen mit app.get/post/put/patch/delete und Pfadsegmenten.
  • Erfassen Sie dynamische Werte mit :param und lesen Sie sie über req.parameters aus (typisiert mit require(_:as:)).
  • Lesen Sie Query-Elemente aus req.query und gruppieren Sie Routen mit grouped.
  • Geben Sie Strings, Statuswerte oder Inhalte zurück, lösen Sie bei Fehlern Abort aus und verwenden Sie asynchrone Handler.

Häufig gestellte Fragen

Ist die Lektion „Routing und Request-Verarbeitung“ kostenlos?

Ja — der vollständige Text von „Routing und Request-Verarbeitung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Routing und Request-Verarbeitung“?

Definieren Sie Routen und verarbeiten Sie HTTP-Requests. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Routing und Request-Verarbeitung“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Routing und Request-Verarbeitung
  2. Content- und JSON-Codierung
  3. Fluent ORM und Models
  4. Middleware und Authentifizierung
← Zurück zu Swift Academy