Ktor môžeme používať aj ako server. Vytvoríme si jednoduchý HTTP server, ktorý bude odpovedať na požiadavky.
V build.gradle.kts:
plugins {
kotlin("jvm") version "2.0.21"
kotlin("plugin.serialization") version "2.0.21"
}
dependencies {
implementation("io.ktor:ktor-server-core:3.0.3")
implementation("io.ktor:ktor-server-netty:3.0.3")
implementation("io.ktor:ktor-server-content-negotiation:3.0.3")
implementation("io.ktor:ktor-serialization-kotlinx-json:3.0.3")
implementation("ch.qos.logback:logback-classic:1.5.15")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0")
}
import io.ktor.server.application.*
import io.ktor.server.engine.*
import io.ktor.server.netty.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
fun main() {
embeddedServer(Netty, port = 8080) {
routing {
get("/") {
call.respondText("Ahoj, svet!")
}
}
}.start(wait = true)
}
Po spustení otvor prehliadač a zadaj http://localhost:8080.
Odporúčaná štruktúra pre väčší server:
src/main/kotlin/
├── Main.kt // vstupny bod
├── routes/
│ └── UserRoutes.kt // definicia endpointov
├── models/
│ └── User.kt // data triedy
└── plugins/
└── Routing.kt // konfiguracia routingu
Server beží na porte 8080 predvolene. Port môžeme zmeniť parametrom
port = 8081.
Vytvor Ktor server s endpointom GET /, ktorý vráti textovú odpoveď.
Spusti server na inom porte a otvor jeho endpoint v prehliadači.
Rozdeľ routing a dátový model do samostatných súborov podľa odporúčanej štruktúry.