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.
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.