面试题答案
一键面试- 定义路由并获取参数:
在Kotlin的Ktor框架中,使用
get
方法定义GET请求的路由,并通过call.parameters
获取查询参数。例如:routing { get("/example") { val param1 = call.parameters["param1"] val param2 = call.parameters["param2"] //... 获取更多参数 } }
- 参数的类型检查和转换:
- 转换为Int类型:
routing { get("/example") { val param1 = call.parameters["param1"]?.toIntOrNull() if (param1 == null) { call.respond(HttpStatusCode.BadRequest, "param1 should be an integer") return@get } // 可以安全地使用param1,类型为Int } }
- 转换为Double类型:
routing { get("/example") { val param2 = call.parameters["param2"]?.toDoubleOrNull() if (param2 == null) { call.respond(HttpStatusCode.BadRequest, "param2 should be a double") return@get } // 可以安全地使用param2,类型为Double } }
- 转换为其他类型类似,例如Boolean:
routing { get("/example") { val param3 = call.parameters["param3"] if (param3 != null && (param3.equals("true", ignoreCase = true) || param3.equals("false", ignoreCase = true))) { val boolParam = param3.equals("true", ignoreCase = true) // 可以安全地使用boolParam,类型为Boolean } else { call.respond(HttpStatusCode.BadRequest, "param3 should be a boolean (true or false)") return@get } } }
- 转换为Int类型: