This is the backend companion of the Kaoto project.
This is the API companion for the Kaoto frontend. It is designed as an hexagonal architecture, decoupled and modularized to be able to easily add your own DSL, and with maintainability in mind.
This project uses Quarkus, the Supersonic Subatomic Java Framework. If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ .
There is a nightly dockerized container for the Kaoto backend. You can run it with the following command:
docker run --rm -d -p 8081:8081 kaotoio/backend
Developer documentation is on https://kaotoio.github.io/kaoto-backend/
The API static swagger documentation is on https://kaotoio.github.io/kaoto-backend/api/index.html
You have to install in your machine
- Maven >= 3.6
- JDK >= 17
First you need to build and install the different maven modules.
mvn install
Then you can run your application in dev mode that enables live coding using:
mvn quarkus:dev -pl api
Your app is now deployed on localhost:8081
and you can check the swagger
API on http://localhost:8081/q/swagger-ui/
.
NOTE: Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8081/q/dev/.
Kaoto can be packaged using:
mvn install
It produces the quarkus-run.jar
file in the api/target/quarkus-app/
directory. Be aware that it’s not an über-jar as
the dependencies are copied into the api/target/quarkus-app/lib/
directory.
If you want to build an über-jar, execute the following command:
mvn install -Dquarkus.package.type=uber-jar
Kaoto backend is now runnable using java -jar api/target/quarkus-app/quarkus-run.jar
.
You can create a native executable using:
mvn install -Pnative
Or, if you don't have GraalVM installed, you can run the native executable build in a container using:
mvn install -Pnative -Dquarkus.native.container-build=true
You can then execute your native executable with: .api/target/code-with-quarkus-1.0.0-SNAPSHOT-runner
If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.html .
Documentation is generated using LeafDoc.
npm install
npm run docs