/realworld-api

A realworld api example app featuring Arrow, Kotlin and Spring Boot.

Primary LanguageKotlin

CircleCI

This is a realworld api example app featuring Arrow, Kotlin and Spring Boot.

NOTE: not yet feature complete, see TODOs.

Goals

  • experiment functional Kotlin backend programming using Arrow
  • implement realworld api spec in order to cover non-trivial use cases
  • production grade rest api with strong integration test suite to enable easy refactoring
  • clear separation of core business logic (realworld-domain) from the supporting infrastructure (realworld-app, realworld-infra)
    • framework independent domain
    • adopted ideas from onion, hexagonal and clean architectures (they might be all the same)
    • NOTE: realworld-app could be a submodule of realword-infra, but I wanted to put emphasis on the deliverables by using a separate top level module

Prior art

How to build

Prerequisites

Install Docker and Docker Compose:

Init DB

docker-compose up -d
./gradlew flywayMigrate

Build

./gradlew build