Kotlin与Ktor构建Android后端API
以下是一个使用 Kotlin 和 Ktor 构建 Android 后端 API 的详细示例,包含常见功能实现:
1. 项目搭建 (build.gradle.kts)
plugins {applicationkotlin("jvm") version "1.9.0"id("io.ktor.plugin") version "2.3.4"id("org.jetbrains.kotlin.plugin.serialization") version "1.9.0"
}dependencies {implementation("io.ktor:ktor-server-core")implementation("io.ktor:ktor-server-netty")implementation("io.ktor:ktor-server-content-negotiation")implementation("io.ktor:ktor-serialization-kotlinx-json")implementation("io.ktor:ktor-server-status-pages")implementation("io.ktor:ktor-server-auth")implementation("io.ktor:ktor-server-auth-jwt")// 数据库implementation("org.jetbrains.exposed:exposed-core:0.41.1")implementation("org.jetbrains.exposed:exposed-jdbc:0.41.1")implementation("com.h2database:h2:2.1.214")// 日志implementation("ch.qos.logback:logback-classic:1.4.7")// 测试testImplementation("io.ktor:ktor-server-test-host")
}
2. 主入口文件 (Application.kt)
fun main() {embeddedServer(Netty, port = 8080, host = "0.0.0.0") {install(ContentNegotiation) {json()}install(StatusPages) {exception<Throwable> { call, cause ->when (cause) {is ApiException -> {call.respond(HttpStatusCode.fromValue(cause.statusCode),ErrorResponse(cause.message ?: "Unknown error"))}else -> {call.respond(HttpStatusCode.InternalServerError,ErrorResponse("Internal server error"))}}