Poďme si ukázať, ako odpovedať na GET požiadavky a vrátiť JSON dáta:
import io.ktor.server.application.*
import io.ktor.server.engine.*
import io.ktor.server.netty.*
import io.ktor.server.plugins.contentnegotiation.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import io.ktor.serialization.kotlinx.json.*
import kotlinx.serialization.Serializable
@Serializable
data class User(val id: Int, val name: String, val email: String)
fun main() {
val users = listOf(
User(1, "Janko", "janko@example.com"),
User(2, "Fero", "fero@example.com"),
User(3, "Marek", "marek@example.com")
)
embeddedServer(Netty, port = 8080) {
install(ContentNegotiation) {
json()
}
routing {
get("/users") {
call.respond(users)
}
get("/users/{id}") {
val id = call.parameters["id"]?.toIntOrNull()
val user = users.find { it.id == id }
if (user != null) {
call.respond(user)
} else {
call.respondText("Pouzivatel nenajdeny")
}
}
}
}.start(wait = true)
}
Spusti server a otestuj v prehliadači alebo cez curl:
curl http://localhost:8080/users
curl http://localhost:8080/users/1
curl http://localhost:8080/users/999
call.respond(dáta)automaticky serializuje objekt do JSON vďakaContentNegotiation.
Vytvor endpoint GET /produkty, ktorý vráti zoznam serializovateľných produktov.
Pridaj endpoint GET /produkty/{id} a pri nenájdení vráť vhodnú odpoveď.
Otestuj oba endpointy cez curl.