Czy podejście stosowania tylko path parameters nawet dla endpoint'ow filtrujących jest ok? Wszystkie parametry są required.
Powiedzmy ze mamy klasę (w dużym uproszczeniu):
class ItemId {
private String type;
private String name;
}
class Item {
private ItemId id;
private String color;
private double price;
...
}
- 1.I czy podejście z wystawieniem rest api jak niżej jest ok?
...
@GetMapping("/items/getByTypeAndColorAndPriceBetween/{type}/{color}/{priceFrom}/{priceTo}"
public List<Item> getByTypeAndColorAndPriceBetween(
@PathVariable String type, @PathVariable String color, @PathVariable double priceFrom, @PathVariable double priceTo
) {
...
}
...
- 2.Czy może lepiej tak:
...
@GetMapping("/items/getByTypeAndColorAndPriceBetween/{type}"
public List<Item> getByTypeAndColorAndPriceBetween(
@PathVariable String type, @RequestParam String color, @RequestParam double priceFrom, @RequestParam double priceTo
) {
...
}
...
Czy podejście nr 1 jest prawidlowe?