Wpis z mikrobloga

#java #programowanie
Mirki tworzę restowy endpoint i mam problem, dodałem w nim parametr X który jest opcjonalny, nie może mieć też wartości domyślnej, natomiast wymaga go metoda wywoływana z serwisu i pytanie, czy mogę przeciążąć endpoiunty tzn ta sama metoda przykładowo post, ta sama ścieżka, ale np jeden parametr mniej lub więcej?
  • 3
@Dominias: spring ci wyrzuci ambigious mapping, więc nie możesz. Ale możesz np zrobić to w logice w ten sposób;
pobierasz obiekt z bazy, sprawdzasz czy parametr nie jest nullem -> jeśli nie jest, dajesz do kontrolera obiekt, jeśli jest nullem robisz z tego DTO i dajesz do kontrolera. Problemem może być typ zwracany, ale tu masz taki hack bo możesz użyć klasy Resource tylko to wymaga Sping Hateoas xD
edit: nie
@Dominias: Jeżeli mówisz o RequestParam, który znajduje się w linku po znaku zapytania to możesz sobie poradzić poprzez zawężenie mapowania. Wystarczy że w RequestMapping uzupełnisz wartość param i możesz mieć dwa mapingi o tym samym urlu i metodzie.