Kotlin Ktor Rest Api Save

A Modern Kotlin-Ktor RESTful API example. Connects to a PostgreSQL database and uses Exposed framework for database operations.

Project README

kotlin-ktor-rest-api

A Modern Kotlin-Ktor RESTful API example. Connects to a PostgreSQL database and uses Exposed framework for database operations. Focused on Software Architecture, SOLID Principles, dependency injection, testable code and feature based development.

  • Ktor Framework
  • Kotlin
  • Dependency Injection -> Koin
  • Authorization -> JWT
  • Database -> PostgreSQL
  • ORM SQL Framework -> Exposed
  • Ktor Client -> For External API calls
  • Build Tool -> Gradle
  • Server -> Tomcat
  • Docker support for containerization
  • POSTMAN Collection for testing API
  • Gradle 7, JDK (Amazon Coretto 11)

Architecture

github (6)

Database Credentials (Please add your PostgreSQL credentials here to connect to your database)

resources/application.conf

    database {
        exampleDatabaseUrl="jdbc:postgresql://localhost:5432/$YOUR_DB_NAME"
        exampleDatabaseDriver="org.postgresql.Driver"
        exampleDatabaseUser="$YOUR_USERNAME"
        exampleDatabasePassword="$YOUR_PASSWORD"
    }

Features

- Health Check

GET /public-api/v1/healthCheck   Just returns a simple object

- Authentication

POST /public-api/v1/authentication/createUser   Registers a user to the db POST /public-api/v1/authentication/login   Returns a jwt token if success GET /api/v1/authentication/userInfo (Needs Authorization token from login as Authorization header : "Bearer $token")   Returns the user information

- Star Wars

GET /api/v1/star-wars/movie (Needs Authorization token from login as Authorization header : "Bearer $token")   An External API call example. Returns a movie information from an external api

Open Source Agenda is not affiliated with "Kotlin Ktor Rest Api" Project. README Source: selimatasoy/kotlin-ktor-rest-api

Open Source Agenda Badge

Open Source Agenda Rating