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

REST API (Path param vs Query param) - dobre praktyki
DA
  • Rejestracja:ponad 8 lat
  • Ostatnio:8 miesięcy
  • Postów:145
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):

Kopiuj
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?
Kopiuj
...
@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:
Kopiuj
...
@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?

edytowany 3x, ostatnio: darksead
nie100sowny
  • Rejestracja:około 9 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:Kraków
  • Postów:402
4
Kopiuj
GET /items?type={type}&color={color}&priceFrom={priceFrom}&priceTo={priceTo}

"Gdy się nie wie, co się robi, to się dzieją takie rzeczy, że się nie wie, co się dzieje"
edytowany 2x, ostatnio: nie100sowny
RequiredNickname
  • Rejestracja:prawie 5 lat
  • Ostatnio:około 10 godzin
  • Postów:620
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.

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:minuta
  • Lokalizacja:Laska, z Polski
  • Postów:10079
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.