This application is a name service, which allows to assign a map of unique user IDs on different services to each other. An example keymap is as follows:
"slack" -> "john.doe"
"jira" -> "[email protected]"
The microservice allows to:
- Adding new keymap
- Appending existing keymap
- Updating existing keymap
- Deleting (from) existing keymap
- Querying key-bindings
See explained definitions and more detailed descriptions of use cases here.
- Start the application:
lein run
- Go to localhost:8080 to see:
Hello World!
- Read your app's source code at src/name_service/service.clj. Explore the docs of functions that define routes and responses.
- Run your app's tests with
lein test
. Read the tests at test/name_service/service_test.clj. - Learn more! See the Links section below.
This project uses Clean Architecture: https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
To configure logging see config/logback.xml. By default, the app logs to stdout and logs/. To learn more about configuring Logback, read its documentation.
- Start a new REPL:
lein repl
- Start your service in dev-mode:
(def dev-serv (run-dev))
- Connect your editor to the running REPL session. Re-evaluated code will be seen immediately in the service.
Docker container support
- Configure your service to accept incoming connections (edit service.clj and add ::http/host "0.0.0.0" )
- Build an uberjar of your service:
lein uberjar
- Build a Docker image:
sudo docker build -t name-service .
- Run your Docker image:
docker run -p 8080:8080 name-service
See docs directory.