Ilość requestów przekazanych do zapytania

0

Posiadam kontroler do sortowania użytkowników

@GetMapping(value = "/users", produces = MediaType.APPLICATION_JSON_VALUE)
    public HttpEntity<List<User>> getUsers(
            @RequestParam(required = false) String q,
            @RequestParam(required = false, defaultValue = "1") int page,
            @RequestParam(required = false, defaultValue = "1") int pageSize,
            @RequestParam(required = false, defaultValue = "id") String sort
    ) {
        return Optional
                .ofNullable(q)
                .map(v -> ResponseEntity.ok().body(userService.findByUsernameContaining(q, page - 1, pageSize, new Sort(Sort.Direction.ASC, sort))))
                .orElseGet(() ->
                        ResponseEntity.ok().body(userService.findAll(page - 1, pageSize, new Sort(Sort.Direction.ASC, sort)))
                );
    }

który może przyjąć jako parametr 4 wartości. Nie wygląda to zbyt estetycznie i zastanawiam się jak można to poprawić pod względem wizualnym.

  1. Zastanawiałem się nad utworzeniem klasy z tymi czterema zmiennymi, a następnie stworzenie metody oadnotowanej @ModelAttribute. Jednak szybko dałem sobie z tym spokój, bo nie będę miał tutaj możliwości ustawienia 'defaultValue' co jest konieczne.

  2. Drogi sposób jaki mi wpadł do głowy, to pozostawienie parametru 'id', a z pozostałych trzech zrobić obiekt 'Pegeable' oadnotowany '@PageableDefault' z ustawiony wartościami 'size = 1, page = 1, sort="id"'. Jednak ten sposób również nie przejdzie, bo koniecznie muszę podczas przekazywania numeru strony do serwisu odjąć 1 od wartości 'page', a w tym przypadku jest to niemożliwe.

Macie może jakiś pomysł?

1 użytkowników online, w tym zalogowanych: 0, gości: 1