0Pricing
Kotlin Academy · Ders

Ktor Projesi Kurulumu: embeddedServer ve Application Modülleri

Bir Ktor uygulamasını başlatın, Netty'yi yapılandırın ve uygulama modüllerini tanımlayın.

Ktor Projesi Kurulumu: embeddedServer ve Application Modülleri, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.

Ktor Nedir?

Ktor, JetBrains'in sunucu ve istemci oluşturmaya yönelik eşzamansız Kotlin çatısıdır. Korutin önceliklidir, eklenti tabanlıdır ve sihirli davranış içermez: ihtiyacınız olan her özellik açıkça yüklenir. Ktor uygulamaları, DI kapsayıcısı gerektirmeyen sıradan Kotlin programlarıdır.

Ktor Bağımlılıklarını Ekleme

Temel sunucu altyapısını (en yaygın seçenek Netty'dir) ve temel Ktor sunucu kitaplığını build.gradle.kts dosyanıza ekleyin:

dependencies {
    implementation("io.ktor:ktor-server-core:2.3.12")
    implementation("io.ktor:ktor-server-netty:2.3.12")
    implementation("ch.qos.logback:logback-classic:1.5.6") // logging
}

embeddedServer: Minimal Başlangıç Noktası

Ktor sunucusu başlatmanın en basit yolu embeddedServer kullanmaktır. Altyapı fabrikasını, bağlantı noktasını ve bir yapılandırma bloğunu aktarın:

import io.ktor.server.engine.*
import io.ktor.server.netty.*
import io.ktor.server.routing.*
import io.ktor.server.response.*

fun main() {
    embeddedServer(Netty, port = 8080) {
        routing {
            get("/") { call.respondText("Hello, Ktor!") }
        }
    }.start(wait = true)
}

Uygulama Modülleri

Daha büyük projelerde yapılandırmayı modüllere ayırın — Application üzerindeki genişletme işlevlerine. Bir modül eklentileri yükler ve rotaları kaydeder. Bu, kod tabanının daha kolay sınanabilir ve birleştirilebilir olmasını sağlar:

fun Application.configureRouting() {
    routing {
        get("/health") { call.respondText("OK") }
    }
}

fun Application.configureSerialization() {
    install(ContentNegotiation) { json() }
}

main'den Modülleri Çağırma

Modüllerinizi birleştirmek için işlevlerini embeddedServer bloğunun içinde çağırın:

fun main() {
    embeddedServer(Netty, port = 8080) {
        configureRouting()
        configureSerialization()
        configureSecurity()
    }.start(wait = true)
}

application.conf (HOCON Yapılandırması)

embeddedServer kullanımına alternatif olarak bir application.conf dosyası (HOCON biçiminde) kullanabilir ve EngineMain aracılığıyla çalıştırabilirsiniz. Yapılandırma dosyası giriş modülünü ve bağlantı noktasını belirtir:

# application.conf
ktor {
    deployment { port = 8080 }
    application {
        modules = [ com.example.ApplicationKt.module ]
    }
}

EngineMain ve embeddedServer

Kod üzerinde tam denetim istediğinizde (sınama ve basit uygulamalar için idealdir) embeddedServer kullanın. Yeniden derleme yapmadan ortama özel yapılandırma istediğinizde EngineMain + application.conf kullanın.

ApplicationCall Nesnesi

Her istek işleyicisi bir ApplicationCall alır. Bu nesne isteğe (call.request), yanıta (call.response) ve call.respondText() ile call.respond() gibi yardımcılara erişim sağlar.

Ortam ve Günlükleme

Bir modül içindeki ortam yapılandırmasına environment.config üzerinden erişin. Günlükleme SLF4J kullanır; günlük düzeylerini ve çıktı biçimini yapılandırmak için src/main/resources/ dizinine bir logback.xml ekleyin.

Geliştirme Sırasında Sıcak Yeniden Yükleme

Ktor, development modu bayrağı aracılığıyla geliştirme sırasında sıcak yeniden yüklemeyi destekler. Bunu application.conf içinde veya program aracılığıyla etkinleştirin: embeddedServer(Netty, port = 8080, developmentMode = true) { ... }.

Proje Yapısı Kuralı

Tipik bir Ktor proje düzeni:

  • Application.kt — main() başlangıç noktası
  • plugins/ — her Application genişletme işlevi için bir dosya (Yönlendirme, Serileştirme, Kimlik Doğrulama vb.)
  • routes/ — alana göre gruplanmış rota tanımları
  • models/ — veri sınıfları

Hızlı Kontrol

Ktor'da bir uygulama modülü işlevinin amacı nedir?

Özet: Ktor Projesi Kurulumu

Önemli çıkarımlar:

  • embeddedServer(Engine, port) { ... }.start(wait=true) en basit başlangıç noktasıdır
  • Yapılandırmayı Application üzerindeki modül genişletme işlevlerine ayırın
  • Harici yapılandırma için EngineMain + application.conf kullanın
  • Her istek işleyicisi, istek ve yanıta erişmek için ApplicationCall ile çalışır
  • Sürdürülebilirlik için rotaları bir routes/ paketinde gruplayın

Sıkça Sorulan Sorular

“Ktor Projesi Kurulumu: embeddedServer ve Application Modülleri” dersi ücretsiz mi?

Evet — “Ktor Projesi Kurulumu: embeddedServer ve Application Modülleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.

“Ktor Projesi Kurulumu: embeddedServer ve Application Modülleri” dersinde ne öğreneceğim?

Bir Ktor uygulamasını başlatın, Netty'yi yapılandırın ve uygulama modüllerini tanımlayın. Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Ktor Projesi Kurulumu: embeddedServer ve Application Modülleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Ktor Projesi Kurulumu: embeddedServer ve Application Modülleri
  2. Yönlendirme ve Türlendirilmiş Parametreler
  3. İçerik Anlaşması ve kotlinx.serialization
  4. Kimlik Doğrulama Eklentileri: JWT ve Oturum
← Kotlin Academy Sayfasına Dön