[kotlin] Ktor Locations 프로젝트 구성
이 블로그에서는 Kotlin의 웹 프레임워크인 Ktor에서 Locations 기능을 추가하는 방법을 알아보겠습니다.
1. Ktor 프로젝트 생성
우선, Ktor 프로젝트를 생성합니다. build.gradle.kts
파일을 편집하여 다음 의존성을 추가합니다.
implementation("io.ktor:ktor-locations:$ktor_version")
implementation("io.ktor:ktor-locations:$ktor_version")
2. Location 객체 정의
다음으로, Location
객체를 정의합니다. modules
디렉토리에 Location.kt
파일을 만들고 다음 코드를 추가합니다.
data class MyLocation(val id: Int, val name: String)
object MyLocations : Location<MyLocation> {
override val path: String = "/myLocation"
override fun getParameters(parameters: Parameters): MyLocation {
val id = parameters["id"]?.toIntOrNull() ?: throw NotFoundException()
val name = parameters["name"] ?: throw NotFoundException()
return MyLocation(id, name)
}
override fun parametersOf(value: MyLocation): Parameters {
return listOf("id" to value.id.toString(), "name" to value.name)
}
}
위 코드에서 MyLocation
은 사용자 정의 데이터 모델이고, MyLocations
는 해당 위치에 대한 경로 및 매개변수 파싱 로직을 정의합니다.
3. Application 구성
다음으로, Ktor 어플리케이션을 구성해야 합니다. module
파일에서 install(Locations)
를 호출하고, 위에서 정의한 MyLocations
를 등록합니다.
install(Locations) {
location<MyLocation>(MyLocations)
}
4. 라우트 추가
마지막으로, 해당 위치로 이동할 수 있는 라우트를 추가합니다.
get<MyLocation> { location ->
call.respondText("Location ID: ${location.id}, Name: ${location.name}")
}
이제 MyLocation
경로에 대한 요청을 처리하는 라우트가 추가되었습니다.
이제 Ktor Locations를 사용하여 RESTful 서비스에서 다양한 경로와 매개변수를 쉽게 처리할 수 있게 되었습니다!
이 글은 Ktor 공식 문서를 참고하여 작성되었습니다.