add kontor-javalin

This commit is contained in:
2025-12-16 23:10:15 +01:00
parent 2a51b4a2f3
commit 25bc4e45ff
22 changed files with 572 additions and 0 deletions
@@ -0,0 +1,30 @@
package de.thpeetz.kontor.api;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.javalin.Javalin;
import de.thpeetz.kontor.services.api.PersonReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ServiceLoader;
public class Main {
private static Logger logger = LoggerFactory.getLogger(Main.class);
private static short port = 7312;
public static void main(String[] args) {
var personReader = ServiceLoader.load(PersonReader.class).findFirst().get(); // <-- Getting an implementation
// for the PersonReader interface
// from the ServiceLoader
var objMapper = new ObjectMapper();
var result = objMapper.valueToTree(personReader.getAll());
logger.info("API: found {} people.", personReader.getAll().size());
var app = Javalin.create().start(port);
app.get("/ping", ctx -> ctx.result("pong"));
app.get("/persons", ctx -> ctx.json(result));
logger.info("API's alive for real :-)))");
}
}
@@ -0,0 +1,10 @@
module de.thpeetz.kontor.api {
requires io.javalin;
requires com.fasterxml.jackson.databind;
requires org.slf4j;
requires kotlin.stdlib;
requires de.thpeetz.kontor.services;
uses de.thpeetz.kontor.services.api.PersonReader;
}