Study
Ktor

Response: call.respond()

Penjelasan

call.respondText(teks) mengirim response teks biasa. call.respond(data) mengirim OBJEK apa pun, otomatis diserialize sesuai Content-Type yang diminta client (biasanya JSON kalau ContentNegotiation aktif). Status code diatur lewat argumen status = HttpStatusCode.NamaStatus di kedua method itu.

Contoh Konsep

@Serializable
data class Produk(val nama: String, val harga: Int)

get("/teks") {
    call.respondText("Ini teks biasa")
}

get("/json") {
    call.respond(Produk(nama = "Kaos CompileDaily", harga = 99000))
}

get("/tidak-ditemukan") {
    call.respond(HttpStatusCode.NotFound, mapOf("error" to "Data tidak ditemukan"))
}

Praktikum

Buat route GET /produk/{id} yang merespons HttpStatusCode.NotFound kalau call.parameters["id"] sama dengan "999", atau data Produk contoh untuk id lainnya.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

mapOf("error" to "pesan") adalah cara ringkas Kotlin membuat Map inline — kata kunci to di sini adalah infix function yang membuat Pair, dipakai luas untuk membuat map ad-hoc tanpa perlu deklarasi data class terpisah untuk response sederhana.