Plugin
- Kotlin kursu
- İleri seviye
- Ders 22/83
- 5 dk
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
// Plugin
// buraya yaz
import io.ktor.server.application.*
fun main() {
}Örnek çözüm
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
fun Application.module() {
____(ContentNegotiation) { json() }
}
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 |