Mam trochę wątpliwości, ponieważ robiąc tak jak wcześniej wiedziałem co dana funkcja zwraca a teraz tylko wiem że zwraca status pozytywny
Rozpracujmy to tak, żebym Ci wskazał jak myśleć o danym endpoincie ( twój endpoint to getAllUsers) :
getAllUsers()
Generalnie endpoint dla klienta działa tak, ze zwrócić powinna listę użytkownik - to jest reakcja oczekiwana od strony klienta, status wystarcza, dlaczego? Bo rezultatem będzie, zwrócna lista- jako widok, oraz status że wszystko poszło okej.
Nie musisz zwracać obiektu, natomiast powinieneś zwrócić uwagę na jedno "żeby obsługiwać błędy" tzn. zachowanie po stronie klienta powinno być zarówno dla niepowodzenia np-> status ( dla serwera, co poszło nie tak ) + informcja o braku elementów, jak i dla powodzenia -> status
Sprowadza się też problem do tego, co sawiera twoja encja "SuccessResponse" bo nie jest ona ni jak powiązana z endpointem i to błąd w architekturze rest, bo wrapujesz obiekt, który z punktu widzenia KLIENTA jest bezużyteczny a twoja metoda jest nie jasna, ma zwracać listę użytkowników, a zajmuje się obiektem "success/lub jego braku"
Więc co ostatecznie?
Podsumowanie: generalnie nie jest to dobre rozwiązanie i powinieneś zwrócić "obiekt transferowany" tak jak wskazuje twoja metoda czyli
ResponseEntity<UserDTO> getAllUsers()
natomiast powinieneś skorzystać z "global exception handlera np" i obsłużyć sobie :) obiekt SuccessRespons -> jako rezultat np błędu/powodzenia i tego co ma się dziać w tej sytuacji, zachowanie jakieś "np logoi do bazy przy succes" z pomocą @controleradvice
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/ControllerAdvice.html
W twoim przypadku dużo zależy od tego jakie API tworzysz, ale na daną chwile to co robisz to "OVER-ENGINERING" SZTUKA DL A SZTUKI niepotrzebne łamanie zasad i komplikowanie sobie życia, zrozumienia innym programistą i przyszłą refaktoryzacją, czy debugowaniem