[kotlin] Ktor Locations 사용 예시

Ktor에서는 HTTP 경로의 다양한 요청을 처리하기 위해 Locations 피처를 제공합니다. 이를 통해 경로의 일부를 Kotlin 데이터 클래스와 매핑하여 경로 매개변수를 쉽게 추출하고 검증할 수 있습니다.

아래는 Ktor Locations의 기본 사용법을 보여주는 예시입니다.

1. 의존성 추가

먼저, build.gradle.kts 또는 build.gradle 파일에 Ktor Locations의 의존성을 추가합니다.

dependencies {
    implementation("io.ktor:ktor-locations:$ktor_version")
}

2. 위치 매핑

다음으로, 요청 경로의 일부를 데이터 클래스와 매핑합니다. 예를 들어, /user/{userId} 경로에서 userId를 추출하고 검증하기 위해 다음과 같이 Location을 정의할 수 있습니다.

data class UserLocation(val userId: Int) {
    init {
        require(userId > 0) { "userId must be a positive integer" }
    }
}

3. 라우팅 설정

이제, UserLocation을 사용하여 요청을 처리하는 라우팅을 설정합니다.

routing {
    location<UserLocation> {
        handle { location ->
            val userId = location.userId
            // 사용자 ID를 사용하여 요청 처리
            // ...
        }
    }
}

위의 예시에서는 UserLocation에 정의된 userId 매개변수를 사용하여 요청을 처리합니다.

이를 통해 원하는 경로의 매개변수를 쉽게 추출하고 검증할 수 있으며, 경로의 다양한 요청을 처리하기 위해 강력한 도구를 제공합니다.

더 많은 정보는 Ktor 공식 문서를 참고하세요.

위 예시는 Ktor 1.6.9 버전 기준으로 작성되었습니다.