The system uses the standard Spring Framework architecture. Requests enter through the controller, which handles the HTTP level logic, and delegates more specific functionality to either services or repositories, depending on the situation. This system is also built on reactive technologies. This uses Kotlin Coroutines to integrate with Spring WebFlux.
API information is served by the application itself. OpenAPI specs can be accessed through /v3/api-docs
(JSON)
or /v3/api-docs.yaml
(YAML). This does not supply a Swagger UI, but an external UI can be used
(e.g. https://editor.swagger.io/).
All initial operations begin relative to root project directory.
Docker components are defined under dev/
. If running the app separately, simply comment out the services.users
block
in the docker-compose.yml
file.
$ cd dev/
$ docker-compose up
Gradle is used to build the project. Java 11 or later is required to build and run the project.
$ ./gradlew test
$ ./gradlew clean bootJar
The Spring Boot and SpringDoc OpenAPI properties can be used to configure the application. By default the application will listen on port 8080 and connects to a MongoDB instance on port 27017.
$ java -jar build/libs/users-1.0.0-SNAPSHOT.jar