CodeBlanks Logo Icon CodeBlanks

Plugin

ContentNegotiation ve StatusPages plugin'lerini öğrenirsin.

Plugin nedir?

Bir plugin, sunucunun davranışını değiştiren ek bileşendir. Ktor'da install çağrısı ile eklenir. ContentNegotiation JSON çevirir, StatusPages hataları yakalar.

Örnek: install(ContentNegotiation) { json() }. Bu eklenti, gövdeyi Kotlin nesnesine çevirir. StatusPages ile exception<Throwable> { call -> ... } bloğu istisnaları ele alır. Plugin'ler Application module içinde ya da routing bloğu içinde kurulabilir. Yapılandırma bir kez yapılır; tüm istekler aynı davranışı paylaşır.

Uygulama ContentNegotiation plugin'i ekle

fun Application.module() tanımla. İçinde install(ContentNegotiation) çağır. main içinde println("Plugin eklendi") yazdır.

Başlangıç kodu

Main.kt
// Plugin
// buraya yaz
import io.ktor.server.application.*

fun main() {
    
}

Örnek çözüm

Main.kt
fun Application.module() {
    install(ContentNegotiation)
}

fun main() {
    println("Plugin eklendi")
}

Beklenen çıktı

Plugin eklendi

StatusPages ile hata yönetimi

StatusPages, sunucuda fırlatılan istisnaları yakalayan plugin'dir. install(StatusPages) { exception<Throwable> { call, cause -> call.respondText("Hata", status = HttpStatusCode.InternalServerError) } }.

Bu blok, herhangi bir istisnayı yakalayıp istemciye tutarlı bir hata yanıtı döndürür. Belirli istisna türleri için farklı bloklar yazılabilir. StatusPages, uygulamanın çökmesini engeller; hataları merkezî olarak yönetir. Üretimde logging plugin'i ile birlikte kullanılır.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 StatusPages plugin'i ne yapar?

  • JSON çevirir
  • Hataları yakalar Doğru cevap
  • URL yönlendirir
  • Engine seçer

Açıklama: StatusPages istisnaları ele alır.

2 install çağrısını tamamla

Soru
fun Application.module() {
    ____(ContentNegotiation) { json() }
}
Cevap
fun Application.module() {
    install(ContentNegotiation) { json() }
}

Açıklama: install ile plugin eklenir.

3 Plugin eşle

Kavram Anlamı
ContentNegotiation JSON çevirir
StatusPages Hata yakalar
install Plugin ekler
json() Format seçer

İleri seviye bölümündeki tüm dersler