Skip to content

Rest Controller with Query Parameter

Josh edited this page Jun 12, 2023 · 1 revision

Rest-Controller mit Query-Parametern

In der Java-Programmierung besteht oft die Notwendigkeit, REST-Controller zu erstellen, die verschiedene Clients bedienen können. In vielen Fällen müssen die Anfragen der Clients mithilfe von Query-Parametern verarbeitet werden. Hier wird beschrieben, wie man einen REST-Controller mit Query-Parametern in Java erstellt.

Erstellen eines einfachen REST-Controller

Zunächst muss eine einfache REST-Schnittstelle implementiert werden. Hierfür kann das Spring-Framework verwendet werden, das die Implementierung der Schnittstelle erheblich erleichtert. Ein Beispiel für einen einfachen REST-Controller sieht wie folgt aus:

@RestController
public class MyController {
    @GetMapping("/my-endpoint")
    public String getData() {
        return "Hello World";
    }
}

Hier wird eine Controller-Klasse definiert, die einen Endpunkt unter der URL "/my-endpoint" zur Verfügung stellt. Der Endpunkt gibt einfach "Hello World" zurück. Um den Endpunkt in einem Webbrowser aufzurufen, geben Sie einfach "http://localhost:8080/my-endpoint" ein.

Verwenden von Query-Parametern im REST-Controller

Um nun Query-Parameter in den REST-Endpoint zu integrieren, müssen diese in der URL definiert werden. Die URL könnte zum Beispiel wie folgt aussehen: "http://localhost:8080/my-endpoint?param1=value1&param2=value2". Im REST-Controller können dann die Parameter wie folgt verarbeitet werden:

@RestController
public class MyController {
    @GetMapping("/my-endpoint")
    public String getData(@RequestParam String param1, @RequestParam String param2) {
        return "Parameter 1: " + param1 + ", Parameter 2: " + param2;
    }
}

Dieser Endpunkt erwartet param1 und param2 als Query-Parameter in der URL und gibt diese als String aus. Wenn der Endpunkt mit der URL "http://localhost:8080/my-endpoint?param1=value1&param2=value2" aufgerufen wird, gibt er folgenden String zurück: "Parameter 1: value1, Parameter 2: value2".

Es ist auch möglich, optionale Query-Parameter anzugeben, indem man das Attribut required von @RequestParam auf false setzt:

@RestController
public class MyController {
    @GetMapping("/my-endpoint")
    public String getData(@RequestParam(required = false) String param1, @RequestParam(required = false) String param2) {
        String result = "No parameters provided";
        if (param1 != null) {
            result = "Parameter 1: " + param1;
        }
        if (param2 != null) {
            if (result.equals("No parameters provided")) {
                result = "";
            }
            result += "Parameter 2: " + param2;
        }
        return result;
    }
}

Dieser Code definiert optionale Query-Parameter und gibt, wenn sie in der URL vorhanden sind, eine entsprechende Nachricht aus. Wenn sie nicht vorhanden sind, gibt der Endpoint die Nachricht "No parameters provided" aus.

Fazit

Die Verwendung von Query-Parametern in REST-Controllern in Java ist relativ einfach und kann mit dem Spring-Framework schnell implementiert werden. Die Verwendung von Query-Parametern ermöglicht es, die Anfragen von Clients flexibler und einfacher zu verarbeiten.