Study
← Semua Kategori

Ktor

Pengenalan Ktor

Apa itu Ktor, cara instalasi, dan cara menjalankan server pertamamu.

Routing Dasar

Mendaftarkan endpoint lewat DSL routing { get(...) }, get(), post(), dan HTTP method lainnya.

Route Parameter

Menerima parameter dinamis dari URL lewat call.parameters.

Query String & Request Body

Mengambil data dari query string lewat call.request.queryParameters, dan body JSON lewat call.receive().

Response: call.respond()

Berbagai cara mengirim response lewat call.respondText(), call.respond(), dan HttpStatusCode.

Plugins: install()

Mengaktifkan fitur tambahan Ktor lewat sistem Plugin, dipasang lewat install().

Content Negotiation: JSON dengan kotlinx.serialization

Serialize/deserialize otomatis JSON lewat plugin ContentNegotiation dan kotlinx.serialization.

Routing Grouping

Mengelompokkan route dengan prefix bersama lewat fungsi route().

StatusPages: Error Handling

Menangani error secara terpusat lewat plugin StatusPages.

Validasi Input

Validasi manual data request, karena Ktor tidak punya sistem validasi bawaan terintegrasi.

Exposed: Database ORM Dasar

Menghubungkan Ktor ke database lewat Exposed, ORM/SQL framework resmi JetBrains untuk Kotlin.

Exposed: Query

Merangkai query database lewat DSL Exposed, dibungkus dalam blok transaction { }.

CRUD REST API Lengkap

Menggabungkan routing, ContentNegotiation, StatusPages, dan Exposed jadi endpoint CRUD lengkap.

Authentication Plugin: JWT

Melindungi endpoint dengan JSON Web Token lewat plugin Authentication bawaan Ktor.

CORS Plugin

Mengizinkan request dari domain/origin berbeda lewat plugin CORS bawaan Ktor.

Static Content

Menyajikan file statis (gambar, CSS, JS) lewat fungsi staticResources() atau staticFiles().

Logging: CallLogging Plugin

Mencatat tiap request masuk lewat plugin CallLogging bawaan Ktor, terintegrasi SLF4J.

Environment & Configuration

Mengelola konfigurasi aplikasi lewat application.conf (HOCON) atau environment variable.

Tugas Akhir

Latihan akhir menggabungkan routing, ContentNegotiation, StatusPages, dan Exposed dalam satu REST API Catatan.