$ loading_
帮助开发者快速掌握 Kotlin Ktor 服务端常用架构与测试模式。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "kotlin-ktor-patterns" 技能: 1. 下载 https://raw.githubusercontent.com/affaan-m/ECC/main/skills/kotlin-ktor-patterns/SKILL.md 2. 保存为 ~/.claude/skills/kotlin-ktor-patterns/SKILL.md 3. 装好后重载技能,告诉我可以用了
请用 Kotlin Ktor 设计一个中型 REST API 的路由结构,包含 users、orders、auth 三个模块,使用路由 DSL 分组,并给出推荐的项目目录结构与示例代码。
输出模块化路由设计方案、目录结构建议,以及可直接参考的 Ktor 路由示例代码。
请给我一个 Ktor 服务端示例,集成 JWT 认证、Koin 依赖注入和 kotlinx.serialization,说明每个插件如何配置,并展示登录接口与受保护接口的完整代码。
输出带配置说明的完整示例,涵盖认证流程、依赖注入注册、序列化设置与接口实现。
请使用 Ktor 的 testApplication 为一个带认证的 API 编写测试,覆盖成功登录、未授权访问、参数校验失败三种场景,并解释测试结构的最佳实践。
输出可执行的 Ktor 测试代码,并附上测试分层与断言设计建议。
Comprehensive Ktor patterns for building robust, maintainable HTTP servers with Kotlin coroutines.
src/main/kotlin/
├── com/example/
│ ├── Application.kt # Entry point, module configuration
│ ├── plugins/
│ │ ├── Routing.kt # Route definitions
│ │ ├── Serialization.kt # Content negotiation setup
│ │ ├── Authentication.kt # Auth configuration
│ │ ├── StatusPages.kt # Error handling
│ │ └── CORS.kt # CORS configuration
│ ├── routes/
│ │ ├── UserRoutes.kt # /users endpoints
│ │ ├── AuthRoutes.kt # /auth endpoints
│ │ └── HealthRoutes.kt # /health endpoints
│ ├── models/
│ │ ├── User.kt # Domain models
│ │ └── ApiResponse.kt # Response envelopes
│ ├── services/
│ │ ├── UserService.kt # Business logic
│ │ └── AuthService.kt # Auth logic
│ ├── repositories/
│ │ ├── UserRepository.kt # Data access interface
│ │ └── ExposedUserRepository.kt
│ └── di/
│ └── AppModule.kt # Koin modules
src/test/kotlin/
├── com/example/
│ ├── routes/
│ │ └── UserRoutesTest.kt
│ └── services/
│ └── UserServiceTest.kt
// Application.kt
fun main() {
embeddedServer(Netty, port = 8080, module = Application::module).start(wait = true)
}
fun Application.module() {
configureSerialization()
configureAuthentication()
configureStatusPages()
configureCORS()
configureDI()
configureRouting()
}
// plugins/Routing.kt
fun Application.configureRouting() {
routing {
userRoutes()
authRoutes()
healthRoutes()
}
}
// routes/UserRoutes.kt
fun Route.userRoutes() {
val userService by inject<UserService>()
route("/users") {
get {
val users = userService.getAll()
call.respond(users)
}
get("/{id}") {
val id = call.parameters["id"]
?: return@get call.respond(HttpStatusCode.BadRequest, "Missing id")
val user = userService.getById(id)
?: return@get call.respond(HttpStatusCode.NotFound)
call.respond(user)
}
post {
val request = call.receive<CreateUserRequest>()
val user = userService.create(request)
call.respond(HttpStatusCode.Created, user)
}
put("/{id}") {
val id = call.parameters["id"]
?: return@put call.respond(HttpStatusCode.BadRequest, "Missing id")
val request = call.receive<UpdateUserRequest>()
val user = userService.update(id, request)
?: return@put call.respond(HttpStatusCode.NotFound)
call.respond(user)
}
delete("/{id}") {
val id = call.parameters["id"]
?: return@delete call.respond(HttpStatusCode.BadRequest, "Missing id")
val deleted = userService.delete(id)
if (deleted) call.respond(HttpStatusCode.NoContent)
else call.respond(HttpStatusCode.NotFound)
}
}
}
fun Route.userRoutes() {
route("/users") {
// Public routes
get { /* list users */ }
get("/{id}") { /* get user */ }
// Protected routes
authenticate("jwt") {
post { /* create user - requires auth */ }
put("/{id}") { /* update user - requires auth */ }
…
帮助开发者为代码代理配置性能优化、安全防护与研究优先工作流。
提供数据库迁移、回滚与零停机发布的最佳实践指导,适用于多种 ORM 与 SQL 数据库。
通过双评审智能体对结果进行对抗式校验,提升输出发布前的可靠性
帮助你掌握地道 Rust 模式、所有权与并发实践,编写安全高性能应用。
基于 C++ Core Guidelines 编写、审查并重构更安全现代的 C++ 代码。
为 Claude Code 会话提供系统化校验流程,帮助检查结果正确性与质量。
帮助开发者掌握 Ktor 服务端常用模式、认证依赖注入与测试实践。
提供地道 Kotlin 模式与最佳实践,帮助构建健壮高效且易维护的应用。
提供地道 Kotlin 设计模式与最佳实践,帮助构建健壮高效且易维护的应用
提供惯用 Kotlin 模式与最佳实践,帮助构建稳健高效且易维护的应用
帮助开发者掌握 Kotlin 协程与 Flow 在 Android 和 KMP 中的实战模式。
帮助开发者用 Kotest、MockK 与协程测试构建高质量 Kotlin 测试体系。