Ktor server
- Kotlin kursu
- İleri seviye
- Ders 19/83
- 5 dk
Ktor server ile HTTP sunucusu öğrenirsin.
Ktor server nedir?
Ktor server, Kotlin ile HTTP sunucusu yazmak için kullanılan coroutine tabanlı bir çerçevedir. Netty, Jetty veya CIO gibi engine'lerle çalışır.
Bir sunucu embeddedServer fonksiyonu ile başlatılır. Örnek: embeddedServer(Netty, port = 8080) { ... }.start(wait = true). Bu blok içinde routing ve plugin'ler tanımlanır. Coroutine tabanlı olduğu için her istek bir coroutine olarak işlenir; thread başına bir istek modelinden farklıdır. Bu derste temel sunucu iskeletini kuracaksın.
Engine seçimi
Ktor sunucusu bir engine üzerinden çalışır. JVM'de yaygın seçimler Netty, Jetty ve CIO'dur.
Engine, soket yönetimi ve istek dağıtımından sorumludur. embeddedServer(Netty, port = 8080) { ... } çağrısında engine ilk parametre olarak verilir. Netty, üretim için yaygın ve olgun bir seçimdir. CIO Kotlin ile yazılmıştır; ek bağımlılık gerektirmez. Engine seçimi performans ve bağımlılık ihtiyacına göre yapılır.
Uygulama Sunucu iskeletini kur
val server = embeddedServer(Netty, port = 8080) { } ile bir sunucu tanımla. println("Sunucu hazır") yazdır.
Başlangıç kodu
// Ktor sunucu
// buraya yaz
import io.ktor.server.application.*
import io.ktor.server.engine.*
import io.ktor.server.netty.*
fun main() {
}Örnek çözüm
fun main() {
val server = embeddedServer(Netty, port = 8080) {
}
println("Sunucu hazır")
}Beklenen çıktı
Sunucu hazır
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Ktor server hangi yapı ile başlatılır?
- main()
- HttpClient()
- embeddedServer() Doğru cevap
- runBlocking()
Açıklama: embeddedServer fonksiyonu sunucuyu başlatır.
2 embeddedServer çağrısını tamamla
val server = ____(Netty, port = 8080) {
}
val server = embeddedServer(Netty, port = 8080) {
}
Açıklama: embeddedServer ile sunucu başlatılır.
3 Ktor server parçalarını eşle
| Kavram | Anlamı |
|---|---|
embeddedServer |
Sunucuyu başlatır |
Netty |
Engine |
port |
Bağlantı noktası |
routing |
Yol tanımı |