Loading Now

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-simple ist 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.
<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