Ktor는 Kotlin으로 작성된 웹 애플리케이션을 구축하기 위한 프레임워크입니다. Ktor는 경로를 처리하기 위한 두 가지 기본적인 메커니즘, 즉 Locations와 Routing을 제공합니다. 이 두 가지 메커니즘은 웹 애플리케이션에서 경로를 매핑하고 처리하는 데 중요한 역할을 합니다.
Routing
Routing은 HTTP 요청의 경로를 애플리케이션의 특정 코드로 연결하는 데 사용됩니다. Ktor에서 Routing은 Route
클래스를 사용하여 구성됩니다. 각 라우트는 특정 경로와 해당 경로에 대한 처리기(Handler) 로 구성됩니다. Routing을 통해 API 엔드포인트 및 웹페이지 경로를 정의하고 처리할 수 있습니다.
아래는 간단한 Routing의 예제 코드입니다.
import io.ktor.application.*
import io.ktor.routing.*
import io.ktor.http.*
import io.ktor.response.*
import io.ktor.request.*
fun Application.main() {
routing {
get("/") {
call.respondText("Hello, World!", ContentType.Text.Html)
}
get("/about") {
call.respondText("This is the about page", ContentType.Text.Html)
}
}
}
위의 코드에서 우리는 /
및 /about
경로에 대한 처리기를 정의하고 있습니다.
Locations
Locations는 Routing을 정의하고 처리하는 방법을 추상화합니다. 이를 통해 경로에 매개변수를 포함하거나, 경로의 일부를 동적으로 매핑할 수 있습니다. Locations를 사용하여 경로에 대한 파라미터를 쉽게 추출하고 처리할 수 있습니다.
아래는 Locations을 사용한 예제 코드입니다.
import io.ktor.locations.*
import io.ktor.application.*
import io.ktor.routing.*
@Location("/user/{userId}")
data class UserLocation(val userId: Int)
fun Application.main() {
routing {
get<UserLocation> { location ->
val userId = location.userId
call.respondText("User id is $userId", ContentType.Text.Html)
}
}
}
위의 코드에서는 /user/{userId}
경로에 대한 UserLocation
을 정의하고, 해당 위치에 매개변수를 추출하여 처리하는 예시를 보여줍니다.
Locations와 Routing은 Ktor 애플리케이션에서 경로를 정의하고 처리하는 강력한 방법을 제공합니다. 이를 활용하여 유연하고 강력한 웹 애플리케이션을 구축할 수 있습니다.
더 많은 내용 및 사용 예제는 Ktor 공식 문서에서 확인할 수 있습니다.