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.