PSQL_URL
- database url by schemejdbc:postgresql://host:port/database-name
PSQL_USER
- database userPSQL_PASSWORD
- database passwordAKKA_HTTP_PORT
- port tu run Akka HTTP interface
- Akka + Slick
- CRUD operations
- Entity partial updates
- CORS support
- Implemented authentication by token directive
- Test coverage with ScalaTest
- Migrations with FlyWay
- Ready for Docker
- Testing with inmemory postgres instance that launch automaticly
- HikaryCP as connection pool
- JDK 8 (e.g. http://www.oracle.com/technetwork/java/javase/downloads/index.html);
- sbt (http://www.scala-sbt.org/release/docs/Getting-Started/Setup.html);
- Create database in PostgresSQL
- Set database settings on application config or set enviroment variables
There are two config files. Application config src/main/resources/application.conf
and test config src/test/resources/application.conf
.
To run application, call:
sbt run
If you wanna restart your application without reloading of sbt, use:
sbt re-start
For launching application in Docker, you must configure database docker instance and run docker image, generated by sbt.
Generating application docker image and publishing on localhost:
sbt docker:publishLocal
Example of running, generated docker image:
docker run --name restapi -e DB_USER=dbuser -e DB_PASSWORD=dbpass -e DB_NAME=dbname -d --link DATABASE_INSTANCE_NAME:database -p 9090:9000 APPLICATION_IMAGE
DATABASE_INSTANCE_NAME
- name of your Postgresql docker instanceAPPLICATION_IMAGE
- id or name of application docker image
To run tests, call:
sbt test