Advanced Topics¶
Explore advanced features and integration patterns.
Topics¶
Document sealed classes and inheritance hierarchies with discriminators
Handle generic classes and type parameters in your schemas
Integration with Ktor's type-safe routing plugin
Optimize build performance with regeneration modes
When to Use Advanced Features¶
| Feature | Use When |
|---|---|
| Polymorphic Types | You have sealed classes or inheritance in your API models |
| Generic Types | You use generic wrappers like Response<T> or Page<T> |
| Ktor Resources | You use Ktor's type-safe Resources plugin |
| Incremental Compilation | You want to optimize local development build times |
Common Advanced Patterns¶
Wrapper Response Types¶
Kotlin
// Generic response wrapper
data class ApiResponse<T>(
val success: Boolean,
val data: T?,
val error: String?
)
get("/users/{id}") {
responds<ApiResponse<User>>(HttpStatusCode.OK)
}
Sealed Class Responses¶
Kotlin
sealed class PaymentResult {
data class Success(val transactionId: String) : PaymentResult()
data class Failed(val reason: String) : PaymentResult()
data class Pending(val checkUrl: String) : PaymentResult()
}
post("/payments") {
responds<PaymentResult>(HttpStatusCode.OK)
}