Wie man in 30 Minuten ein REST API in Swift schreibt

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 Swift für REST-APIs?

Swift ist nicht nur eine Sprache für mobile Anwendungen. Dank Frameworks wie Vapor und Kitura können Sie vollwertige REST-APIs für die Serverseite erstellen. Dies ist besonders nützlich, wenn Ihre iOS-App bereits Swift verwendet: Sie können sowohl Client als auch Server in derselben Sprache schreiben, was die Entwicklungszeit verkürzt und die Code-Wartung vereinfacht.

In diesem Artikel erstellen wir eine einfache REST-API in Swift mit dem Vapor-Framework – der beliebtesten Lösung für die serverseitige Entwicklung in Swift. Wir werden den Server einrichten, Routen für CRUD-Operationen hinzufügen und ihn testen. Der gesamte Vorgang dauert nicht länger als 30 Minuten.

Voraussetzungen: macOS oder Linux, installiertes Swift 5.8+ (oder neuer), grundlegendes Verständnis von HTTP und JSON.



Schritt 1: Installieren und Einrichten eines Vapor-Projekts

Vapor bietet ein praktisches CLI-Tool für einen schnellen Start. Installieren Sie es über Homebrew:

brew install vapor

Erstellen Sie dann ein neues Projekt:

vapor new MyAPI --template=apicd MyAPI

Das Flag --template=api erstellt ein Grundgerüst mit einer minimalen Struktur für eine REST-API. Nach der Erstellung des Projekts öffnen Sie es in Xcode (oder einem beliebigen Editor):

open Package.swift

Die Projektstruktur umfasst:

  • Sources/App/ — Hauptlogik (Routen, Controller, Modelle).
  • Sources/App/routes.swift — Routenregistrierung.
  • Sources/App/configure.swift — Anwendungskonfiguration.
  • Package.swift — Abhängigkeiten (Vapor ist bereits enthalten).

Wenn Sie Xcode verwenden, werden Abhängigkeiten automatisch heruntergeladen. Führen Sie im Terminal vapor build aus, um das Projekt zu erstellen.



Schritt 2: Erstellen des Datenmodells und der Datenbank

Für eine REST-API benötigen wir ein Modell. Erstellen wir ein einfaches Task-Modell mit den Feldern: id, title, completed. In Vapor erben Modelle normalerweise von Model (Fluent ORM).

Erstellen Sie eine Datei Sources/App/Models/Task.swift:

import Fluentimport Vapor

final class Task: Model, Content { static let schema = "tasks"

@ID(key: .id) var id: UUID?

@Field(key: "title") var title: String

@Field(key: "completed") var completed: Bool

init() {}

init(id: UUID? = nil, title: String, completed: Bool = false) { self.id = id self.title = title self.completed = completed }}

Jetzt erstellen wir eine Migration für die Datenbanktabelle. Erstellen Sie eine Datei Sources/App/Migrations/CreateTask.swift:

import Fluent

struct CreateTask: Migration { func prepare(on database: Database) -> EventLoopFuture<Void> { database.schema("tasks") .id() .field("title", .string, .required) .field("completed", .bool, .required) .create() }

func revert(on database: Database) -> EventLoopFuture<Void> { database.schema("tasks").delete() }}

Fügen Sie die Migration in configure.swift hinzu:

app.migrations.add(CreateTask())

Standardmäßig verwendet Vapor SQLite (eine Datei im Projektordner). Wenn Sie PostgreSQL oder MySQL möchten, ändern Sie die Einstellungen in configure.swift, aber für einen schnellen Start funktioniert SQLite perfekt.



Schritt 3: Registrieren der REST-API-Routen

Jetzt erstellen wir einen Controller zur Verarbeitung der Anfragen. Erstellen Sie eine Datei Sources/App/Controllers/TaskController.swift:

import Vaporimport Fluent

struct TaskController: RouteCollection { func boot(routes: RoutesBuilder) throws { let tasks = routes.grouped("tasks")

tasks.get(use: index) // GET /tasks tasks.post(use: create) // POST /tasks tasks.grou

Blogs

Buchempfehlungen