REST API (Path param vs Query param) - dobre praktyki

0

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. 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
) {
...
}
...

  1. 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?

4
GET /items?type={type}&color={color}&priceFrom={priceFrom}&priceTo={priceTo}
1

Obejrzyj/poczytaj co nieco o rest api bo to nie tak, że jedno podejście jest dobre drugie jest złe bo tych dwóch rzeczy (path variable i request param) używa się do czego innego a struktura samego rest api ma pewne założenia.

0

Up to you jak zaprojektujesz URL.

Ja zazwyczaj stosuję path param dla parametrów wymaganych, jeśli jest ich mało, i query param dla opcjonalnych (jak filtr, sortowanie, etc).

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.