REST-APIs mit Javalin (GET-Methode)
API-Dokumentation GitHub-Repository
Dieses Projekt demonstriert die Implementierung einer einfachen REST-API mit dem Javalin-Framework in Java. Es zeigt, wie man die GET-Methode verwendet, um Benutzerinformationen abzurufen, und behandelt die entsprechenden HTTP-Statuscodes.
GET
- Zweck: Daten abrufen (z. B. Liste aller Benutzer oder Details eines einzelnen Benutzers).
- Beispiel:
GET /users→ Liste aller Benutzer;GET /user/{id}→ Details eines Benutzers mit der angegebenen ID. - Statuscodes:
- 200 OK: Erfolgreiche Abfrage, Daten werden zurückgegeben.
- 404 Not Found: Benutzer mit der angegebenen ID existiert nicht.
Beispiel-Endpunkte
public class Main {
public static void main(String[] args) {
List<User> users = new ArrayList<>();
{
users.add(new User(1, "John Doe", "john.doe@example.com", "admin"));
users.add(new User(2, "Jane Smith", "jane.smith@example.com", "user"));
users.add(new User(3, "Alice Johnson", "alice.johanson@example.com", "user"));
}
Javalin.create( config -> {
config.routes.get("/users", ctx -> {
ctx.json(users);
}
);
}
).start(7070);
}
}
Benutzerstruktur
Die Benutzerobjekte haben folgende Struktur:
{
"id": 1,
"name": "Max Mustermann",
"email": "max.mustermann@example.com",
"role": "admin"
}
Fazit
REST-APIs sind der Grundbaustein moderner Webanwendungen und Microservices. Durch klare Konventionen, HTTP-Standards und Zustandslosigkeit sind sie leicht verständlich, skalierbar und gut wartbar. In Kombination mit Frameworks wie Javalin lassen sich RESTful APIs in Java schnell und übersichtlich umsetzen.
Dieses Projekt demonstriert die GET-Methode einer REST-API mit Javalin. Es zeigt, wie Benutzerinformationen abgerufen werden können, und behandelt die entsprechenden HTTP-Statuscodes. Die GET-Methode ist ein grundlegender Bestandteil von REST-APIs und wird häufig für das Lesen von Daten verwendet.
Versionen
Java
- Java Version: 21 (LTS)
- Empfehlung: Verwende Java 21 oder höher, um die neuesten Sprachfeatures und Verbesserungen zu nutzen.
Javalin 7.2.2
- Aktuelle Version: 7.2.2 (Stand: Juni 2024)
- Weitere Informationen und Updates findest Du auf der offiziellen Javalin-Website: javalin
slf4j-simple
- Aktuelle Version: 2.0.17 (Stand: Juni 2024)
- Weitere Informationen und Updates findest Du auf der offiziellen SLF4J-Website: slf4j
Jackson Databind
- Aktuelle Version: 2.21.2 (Stand: Juni 2024)
- Weitere Informationen und Updates findest Du auf der offiziellen Jackson-Website: Jackson Databind
Verwendete Abhängigkeiten
In diesem Projekt werden folgende Bibliotheken verwendet (siehe auch pom.xml). Hier ist eine kurze Erklärung, warum sie gebraucht werden und welche Version konkret eingesetzt ist.
io.javalin:javalin:7.2.2- Zweck: Leichtgewichtiges Web-Framework zum schnellen Erstellen von HTTP-Endpunkten und REST-APIs. Javalin bietet eine einfache API für Routing, Middleware, Request/Response-Handling und Serverseitiges Rendering.
- Warum diese Version: 7.2.2 ist die zum Projektzeitpunkt verwendete stabile Version. Javalin entwickelt sich aktiv weiter — bei Updates auf neue Major-Releases auf Breaking-Changes achten.
- Hinweise: Javalin nutzt intern einen Servlet-Container (standardmäßig Jetty) und ist für Lern- und Demo-Projekte ideal.
<dependency>
<groupId>io.javalin</groupId>
<artifactId>javalin</artifactId>
<version>7.2.2</version>
</dependency>
org.slf4j:slf4j-simple:2.0.17- Zweck: SLF4J ist eine Logging-Abstraktion;
slf4j-simpleist eine einfache, konsolenorientierte Implementierung von SLF4J. Sie schreibt Logs direkt auf stdout/stderr und ist einfach zu konfigurieren. - Warum diese Version: 2.0.17 passt zur SLF4J-API-Version und ist für Demo- und Entwicklungszwecke ausreichend. In Produktionsprojekten empfiehlt sich eine robustere Implementierung (z. B. Logback) und eine konfigurierte Logging-Policy.
- Zweck: SLF4J ist eine Logging-Abstraktion;
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.17</version>
</dependency>
com.fasterxml.jackson.core:jackson-databind:2.21.2- Zweck: JSON-Serialisierung und -Deserialisierung (Object ↔ JSON). Jackson wird verwendet, um Request-Bodies zu parsen und Java-Objekte als JSON zurückzugeben.
- Warum diese Version: 2.21.2 ist die im Projekt verwendete Version. Jackson erhält regelmäßig Sicherheitsupdates — bei produktivem Einsatz sollte man Security-Bulletins prüfen und zeitnah aktualisieren.
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.21.2</version>
</dependency>
Kurz: Diese Abhängigkeiten sind absichtlich minimal gehalten — sie reichen für ein kleines Lernprojekt und ein interaktives Browser-Tutorial aus. Für grössere Projekte oder Produktionsempfehlungen siehe die jeweiligen Projektseiten und Sicherheits-Notes.
Share this content:



Post Comment