Wie man in 30 Minuten eine REST API mit Kotlin schreibt: Schritt-für-Schritt-Anleitung

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 Kotlin und REST API?

\n

Moderne Webentwicklung ist ohne REST API undenkbar. Wenn Sie bereits mit Python und Frameworks wie Flask oder FastAPI vertraut sind, schätzen Sie sicherlich die Einfachheit und Geschwindigkeit bei der Erstellung von Serveranwendungen. Kotlin als moderne Sprache für die JVM bietet nicht weniger Eleganz und Prägnanz, insbesondere in Kombination mit dem Framework Ktor.

\n

In diesem Artikel erstellen wir in 30 Minuten eine vollwertige REST API mit Kotlin. Sie lernen, wie Sie das Projekt einrichten, Routen erstellen, JSON verarbeiten und den Server starten. Kein überflüssiges Wissen – nur Praxis.

\n

Wenn Sie Ihren Technologie-Stack erweitern oder einfach Kotlin für die Backend-Entwicklung ausprobieren möchten, ist dieser Leitfaden genau das Richtige für Sie.

\n\n

Schritt 1: Projekteinrichtung und Abhängigkeiten

\n

Zunächst benötigen wir ein Kotlin-Projekt. Wir verwenden das Build-Tool Gradle (oder Maven – je nach Wahl). Der schnellste Weg ist die Erstellung eines Projekts über den Ktor Project Generator.

\n

Wählen Sie die folgenden Optionen:

\n
    \n
  • Build System: Gradle Kotlin DSL
  • \n
  • Engine: Netty (oder eine andere)
  • \n
  • Plugins: Content Negotiation (JSON), Routing, Status Pages
  • \n
\n

Nach dem Herunterladen des Archivs entpacken Sie es und öffnen es in IntelliJ IDEA oder einem anderen Editor.

\n

Wenn Sie das Projekt manuell erstellen, fügen Sie die folgenden Abhängigkeiten in build.gradle.kts hinzu:

\n
dependencies {\n    implementation("io.ktor:ktor-server-core:2.3.0")\n    implementation("io.ktor:ktor-server-netty:2.3.0")\n    implementation("io.ktor:ktor-server-content-negotiation:2.3.0")\n    implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.0")\n    implementation("ch.qos.logback:logback-classic:1.4.11")\n}
\n

Jetzt erstellen wir die Datei Application.kt – den Einstiegspunkt der Anwendung.

\n
import io.ktor.server.engine.*\nimport io.ktor.server.netty.*\nimport io.ktor.server.application.*\nimport io.ktor.server.plugins.contentnegotiation.*\nimport io.ktor.serialization.kotlinx.json.*\nimport kotlinx.serialization.json.Json\n\nfun main() {\n    embeddedServer(Netty, port = 8080, host = "0.0.0.0") {\n        configureSerialization()\n        configureRouting()\n    }.start(wait = true)\n}\n\nfun Application.configureSerialization() {\n    install(ContentNegotiation) {\n        json(Json {\n            prettyPrint = true\n            isLenient = true\n        })\n    }\n}
\n

Fertig! Wir haben eine grundlegende Konfiguration für die Arbeit mit JSON und einen Server auf Port 8080.

\n\n

Schritt 2: Erstellung des Datenmodells und des Speichers

\n

Für die REST API benötigen wir Daten. Erstellen wir ein einfaches Modell User (Benutzer) und einen temporären In-Memory-Speicher.

\n

Zunächst definieren wir eine data-Klasse mit der Annotation @Serializable:

\n
import kotlinx.serialization.Serializable\n\n@Serializable\ndata class User(\n    val id: Int,\n    val name: String,\n    val email: String\n)
\n

Jetzt erstellen wir ein Repository-Objekt, das die Benutzer speichert:

\n
object UserRepository {\n    private val users = mutableListOf(\n        User(1, "Ivan Ivanov", "ivan@example.com"),\n        User(2, "Maria Petrova", "maria@example.com")\n    )\n\n    fun getAll(): List<User> = users.toList()\n\n    fun getById(id: Int): User? = users.find { it.id == id }\n\n    fun add(user: User): User {\n        users.add(user)\n        return user\n    }\n\n    fun delete(id: Int): Boolean = users.removeIf { it.id == id }\n}
\n

Dies ist eine sehr einfache Lösung, aber für eine Demonstration in 30 Minuten ideal geeignet.

\n\n

Schritt 3: Konfiguration der Routen (REST-Endpunkte)

\n

Jetzt kommt der spannendste Teil – wir erstellen Endpunkte für CRUD-Operationen. Fügen wir die Datei Routing.kt hinzu:

\n
import io.ktor.server.routing.*\nimport io.ktor.server.response.*\nimport io.ktor.server.request.*\n\nfun Application.configureRouting() {\n    routing {\n        route("/api/u                

Blogs

Buchempfehlungen