A Kotlin Web Microservice without Spring Boot
This is an example of a REST API in Kotlin without using Spring Boot. It's basically an exercise to try alternative libraries.
The application was used for a conference talk, the slides of which are here.
The application development stages are shown in different branches:
master
- this branch; contains all the changes from the last branch.1-fatjar
- the initial Ktor application with the added custom data class and shadow jar (fat jar) Gradle task.2-rest
- implemented the CRUD endpoints.3-persistence
- added database interaction (mysql) with Jetbrains Exposed.4-di
- dependency injection with Koin.5-metrics
- added Micrometer metrics to the app.6-request-metrics
- removed most of the default metrics to have better visibility for the request metrics (don't do that with your real apps!).
Requirements
- Docker and Docker Compose
make
utility to run commands from theMakefile
Starting the local environment (for branches with db)
make up
Stopping the local environment (for branches with db)
make down
Have fun with it!