Overview
The Kolibrium API module is a code generation tool that uses Kotlin Symbol Processing (KSP) to automatically generate type-safe HTTP client code from annotated request models. It provides a declarative way to define REST API endpoints and generates:
- Type-safe client methods — Compile-time safety for API calls
- Automatic serialization/deserialization — Using kotlinx.serialization
- Authentication handling — Support for Bearer, Basic, API Key, and Custom auth
- Test harness functions — Built-in testing utilities
- Path parameter substitution — Automatic URL construction
- Query parameter handling — Optional parameters with null safety
- Request body DSL builders — Fluent API for building requests
Note: Context parameters require Kotlin's context parameters feature to be enabled in your project.
Setup
If you're starting from scratch
The easiest way to get started is to create a repository from the kolibrium-api-starter template. It includes all necessary dependencies so that you can start coding immediately.
If you already have an existing project
1. Add KSP plugin
Add the KSP plugin and Kotlin serialization to your build.gradle.kts:
plugins {
kotlin("jvm") version "2.3.10"
kotlin("plugin.serialization") version "2.3.10"
id("com.google.devtools.ksp") version "2.3.5"
}
2. Add dependencies
dependencies {
// Kolibrium API core
implementation("dev.kolibrium:kolibrium-api-core:<version>")
// KSP annotations
implementation("dev.kolibrium:kolibrium-api-ksp-annotations:<version>")
// KSP processor
ksp("dev.kolibrium:kolibrium-api-ksp-processors:<version>")
// Ktor client (required)
implementation("io.ktor:ktor-client-core:<ktor-version>")
implementation("io.ktor:ktor-client-cio:<ktor-version>")
implementation("io.ktor:ktor-client-content-negotiation:<ktor-version>")
implementation("io.ktor:ktor-serialization-kotlinx-json:<ktor-version>")
// Testing libraries, such as JUnit, Kotest, etc.
}