[kotlin] Ktor Location 라이브러리를 이용한 쿼리 파라미터 처리

Kotlin의 Ktor 프레임워크에서는 URL의 쿼리 파라미터를 처리하기 위해 Location 라이브러리를 제공합니다. 이 라이브러리를 사용하면 간단하고 안전하게 쿼리 파라미터를 다룰 수 있습니다.

Ktor 및 Location 라이브러리 가져오기

먼저, build.gradle.kts 파일에 다음 의존성을 추가하여 Ktor 및 Location 라이브러리를 가져옵니다.

dependencies {
    implementation("io.ktor:ktor-server-core:1.6.5")
    implementation("io.ktor:ktor-server-netty:1.6.5")
    implementation("io.ktor:ktor-locations:1.6.5")
}

Location 라이브러리를 사용한 쿼리 파라미터 처리

다음으로, Ktor의 ApplicationCall을 사용하여 요청의 쿼리 파라미터를 쉽게 다룰 수 있습니다. 예를 들어, id라는 쿼리 파라미터를 가져와 보여주는 간단한 예제를 살펴보겠습니다.

import io.ktor.application.*
import io.ktor.http.*
import io.ktor.locations.*
import io.ktor.response.*
import io.ktor.routing.*
import io.ktor.server.engine.*
import io.ktor.server.netty.*

@KtorExperimentalLocationsAPI
@Location("/user")
class UserLocation {
    @Location("/{id}")
    data class UserId(val id: Int)
}

fun main() {
    embeddedServer(Netty, port = 8080) {
        install(Locations)

        routing {
            get<UserLocation.UserId> { (id) ->
                call.respondText("User id is $id", contentType = ContentType.Text.Plain)
            }
        }
    }.start(wait = true)
}

위의 예제에서는 UserLocation 클래스를 정의하여 /user 경로에 접근하고, UserId 클래스를 정의하여 id 쿼리 파라미터를 가져옵니다. 그리고 이를 통해 해당 id에 해당하는 사용자 정보를 반환합니다.

이제, Ktor Location 라이브러리를 사용하여 간단하게 쿼리 파라미터를 처리할 수 있는 방법을 알아보았습니다.

더 자세한 내용은 Ktor 공식 문서를 참고하세요.