kotlin-ktor-patterns

Ktor server patterns including routing DSL, plugins, authentication, Koin DI, kotlinx.serialization, WebSockets, and testApplication testing. Use when building a Ktor server — routing, plugins, auth, DI, serialization, or tests.

By affaan-m · 2,836 installs

npx skills add affaan-m/ecc --skill kotlin-ktor-patterns

Source repository · Upstream listing

Ktor Server Patterns Comprehensive Ktor patterns for building robust, maintainable HTTP servers with Kotlin coroutines. When to Activate Building Ktor HTTP servers Configuring Ktor plugins (Auth, CORS, ContentNegotiation, StatusPages) Implementing REST APIs with Ktor Setting up dependency injection with Koin Writing Ktor integration tests with testApplication Working with WebSockets in Ktor Application Structure Standard Ktor Project Layout Application Entry Point Routing DSL Basic Routes Route Organization with Authenticated Routes Content Negotiation & Serialization kotlinx.serialization Setup Serializable Models Custom Serializers Authentication JWT Authentication Auth Routes Status Pages (Error Handling) CORS Configuration Koin Dependency Injection Module Definition Using Koin in Routes Koin for Testing Request Validation WebSockets testApplication Testing Basic Route Testing Testing Authenticated Routes Configuration application.yaml Reading Config Quick Reference: Ktor Patterns Pattern Description route("/path") { get { } } Route grouping with DSL call.receive<T () Deserialize request body call.respond(status, body) Send response with status call.parameters["id"] Read path parameters call.request.queryParameters["q"] Read query parameters install(Plugin) { } Install and configure plugin authenticate("name") { } Protect routes with auth by inject<T () Koin dependency injection testApplication { } Integration testing Remember : Ktor is designed around Kotlin coroutines and DSLs. Keep routes thin, push logic to services, and use Koin for dependency injection. Test with testApplication for full integration coverage.