My little sandbox for playing around with the FP + OOP + DDD combination, in particular using Rho, doobie, Docker, testing, etc in a project.
My little sandbox for playing around with the FP + OOP + DDD combination, in particular using Rho, doobie, Docker, integration testing, etc in a project. In the future, this might be spun out into a G8 template.
Goals:
Explores:
sbt dockerComposeUp
(stopped via dockerComposeStop
)Docker is essential to having fun here, so go download it if you don't have it installed.
sbt dockerComposeUp
and go to the root in your browser (e.g. localhost). It will start a
docker-compose environment that includes the web-server and dependencies.
sbt test
will run normal testssbt dockerComposeTest
will run integration testsAnyVal
wrappers are exposed in the documentation as their underlying type..toService
and passing in a Rho middle ware). This causes the routes and specs to get compiled.
withCustomSerializer
usage (see docs),
which is not optimal (far away from actual models). Would be awesome if it:
Integration with Cats standard libs is amazing
F[_]
throughout is very clean, no need
for implicit eCtx: ExecutionContext
boilerplate everywhere)Comes out of the box with support for various middlewares (auth and there is also tsec, a crypto lib with an http4s integration module.
Used in production at a number of places, including Verizon, Jack Henry, etc.
Various integrations exist, like
http4s itself supports running on various servers other than Blaze (default), including as a Servlet, enabling usage in:
This is interesting because it makes migration easy (mount old Servlets with new ones.)
QuerySoundnessSpec
) to check your queries
against a real DB.Help me learn ! Ask questions, submit issues and PRs :)