0Pricing
Kotlin Academy · Pelajaran

Penyiapan Proyek Ktor: embeddedServer dan Modul Application

Siapkan aplikasi Ktor, konfigurasikan Netty, dan definisikan modul aplikasi.

Penyiapan Proyek Ktor: embeddedServer dan Modul Application adalah pelajaran Kotlin Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Kotlin Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kotlin Academy mencakup 4 pelajaran total.

Apa Itu Ktor?

Ktor adalah kerangka kerja Kotlin asinkron milik JetBrains untuk membangun server dan klien. Ktor mengutamakan coroutine, berbasis pengaya, dan tidak memiliki keajaiban tersembunyi: setiap fitur yang Anda perlukan dipasang secara eksplisit. Aplikasi Ktor hanyalah program Kotlin biasa — tidak memerlukan wadah DI.

Menambahkan Dependensi Ktor

Tambahkan mesin server inti (Netty adalah yang paling umum) dan pustaka server Ktor inti ke build.gradle.kts Anda:

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: Titik Masuk Minimal

Cara paling sederhana untuk memulai server Ktor adalah embeddedServer. Teruskan pabrik mesin, port, dan blok konfigurasi:

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)
}

Modul Aplikasi

Untuk proyek yang lebih besar, pisahkan konfigurasi ke dalam modul — fungsi ekstensi pada Application. Modul memasang pengaya dan mendaftarkan rute. Hal ini membuat basis kode lebih mudah diuji dan disusun:

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

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

Memanggil Modul dari main

Panggil fungsi modul Anda di dalam blok embeddedServer untuk menyusunnya:

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

application.conf (Konfigurasi HOCON)

Alternatif untuk embeddedServer adalah menggunakan berkas application.conf (format HOCON) dan menjalankannya melalui EngineMain. Berkas konfigurasi menentukan modul entri dan port:

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

EngineMain vs embeddedServer

Gunakan embeddedServer jika Anda menginginkan kendali penuh dalam kode (cocok untuk pengujian dan aplikasi sederhana). Gunakan EngineMain + application.conf jika Anda menginginkan konfigurasi khusus lingkungan tanpa mengompilasi ulang.

Objek ApplicationCall

Setiap penangan permintaan menerima ApplicationCall. Objek ini menyediakan akses ke permintaan (call.request), respons (call.response), dan pembantu seperti call.respondText() serta call.respond().

Lingkungan dan Pencatatan Log

Akses konfigurasi lingkungan di dalam modul melalui environment.config. Pencatatan log menggunakan SLF4J; tambahkan logback.xml ke src/main/resources/ untuk mengonfigurasi tingkat log dan format keluaran.

Muat Ulang Langsung dalam Pengembangan

Ktor mendukung muat ulang langsung selama pengembangan melalui penanda mode development. Aktifkan dalam application.conf atau secara terprogram: embeddedServer(Netty, port = 8080, developmentMode = true) { ... }.

Konvensi Struktur Proyek

Tata letak proyek Ktor yang umum:

  • Application.kt — titik masuk main()
  • plugins/ — satu berkas untuk setiap fungsi ekstensi Application (Perutean, Serialisasi, Autentikasi, dan lainnya)
  • routes/ — definisi rute yang dikelompokkan berdasarkan domain
  • models/ — kelas data

Pemeriksaan Singkat

Apa tujuan fungsi modul Application dalam Ktor?

Rekapitulasi: Penyiapan Proyek Ktor

Poin penting:

  • embeddedServer(Engine, port) { ... }.start(wait=true) adalah titik masuk paling sederhana
  • Pisahkan konfigurasi ke dalam fungsi ekstensi modul pada Application
  • Gunakan EngineMain + application.conf untuk konfigurasi eksternal
  • Setiap penangan permintaan bekerja dengan ApplicationCall untuk mengakses permintaan dan respons
  • Kelompokkan rute dalam paket routes/ agar mudah dipelihara

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Penyiapan Proyek Ktor: embeddedServer dan Modul Application” gratis?

Ya — teks lengkap “Penyiapan Proyek Ktor: embeddedServer dan Modul Application” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Kotlin Academy, upgrade ke CoddyKit PRO. Kursus Kotlin Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Penyiapan Proyek Ktor: embeddedServer dan Modul Application”?

Siapkan aplikasi Ktor, konfigurasikan Netty, dan definisikan modul aplikasi. Kamu berlatih Kotlin Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Kotlin Academy?

Tidak diperlukan pengalaman sebelumnya. Kotlin Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Penyiapan Proyek Ktor: embeddedServer dan Modul Application” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Kotlin Academy ini?

Ya. Setiap pelajaran Kotlin Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Penyiapan Proyek Ktor: embeddedServer dan Modul Application
  2. Routing dan Parameter Bertipe
  3. Negosiasi Konten dan kotlinx.serialization
  4. Plugin Autentikasi: JWT dan Sesi
← Kembali ke Kotlin Academy