Arthur
Arthur

Reputation: 25

Java REST API Complex Query

I have a table like this :

enter image description here

Now I want to create a a single REST API endpoint that returns filtered set of data:

  1. It should correctly filter any combination of API parameters.
  2. All parameters are optional

Look at this example : GET /api?type=s&max_price=1000&min_price=200&address=Berlin

I want to be able to filter based each parameter or combination of 2 or parameters.

How should I write my @RequestParam? This is a complex query. what is the strategy for this?

Upvotes: 0

Views: 164

Answers (1)

Eduardo Briguenti Vieira
Eduardo Briguenti Vieira

Reputation: 4579

Try simple GET request like:

    @GetMapping(value = "/api")
public ReturnDto test(
        @RequestParam(required = false, value = "type", defaultValue = "0") String type,
        @RequestParam(required = false, value = "max_price", defaultValue = "10000") int maxPrice,
        @RequestParam(required = false, value = "min_price", defaultValue = "0  ") int minPrice,
        @RequestParam(required = false, value = "address", defaultValue = "") int address
        ) {
}

If you don't need the default value, you can remove the defaultValue keyword, but then you need to change int to Integer, to allow null values.

Upvotes: 1

Related Questions