traneHead / ktorwebapp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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:

  1. master - this branch; contains all the changes from the last branch.
  2. 1-fatjar - the initial Ktor application with the added custom data class and shadow jar (fat jar) Gradle task.
  3. 2-rest - implemented the CRUD endpoints.
  4. 3-persistence - added database interaction (mysql) with Jetbrains Exposed.
  5. 4-di - dependency injection with Koin.
  6. 5-metrics - added Micrometer metrics to the app.
  7. 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 the Makefile

Starting the local environment (for branches with db)

make up

Stopping the local environment (for branches with db)

make down

Have fun with it!

About


Languages

Language:Kotlin 97.4%Language:Makefile 1.3%Language:Dockerfile 1.3%