ResponseEntity i HttpStatus/Headrer itd

0

Cześć,
Tak jak w temacie - powiedzcie proszę czy w codziennej pracy przy restowych serwisach korzystacie z ww metod np. przy tworzeniu Usera itd.

Pozdrawiam!

0

Jeśli jakaś operacja może failować i chcesz zwrócić informacje o kodzie błędu to jak najbardziej. Możesz sobie opakować wynik w cos w stylu:

    public static <T> ResponseEntity<T> formResponse(Optional<T> data) {
        return data.map(ResponseEntity::ok)
                .orElse(ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null));
    }

Czyli jeśli optional jest pusty to zwrócisz http 500, a jeśli nie to zwrócisz wyniki. Tu ciche założenie że warstwa logiki zwraca do kontrolera optionala. Analogicznie można zrobić z jakimś Either jeśli chcesz rozpatrywać wiecej opcji.

0

Czyli jak napiszę coś takiego, nie będzie to uznane za średniowiecze itd?

  @RequestMapping(value = "/user/", method = RequestMethod.POST)
    public ResponseEntity<?> createUser(@RequestBody User use) {
        logger.info("Creating User : {}", user);
 
        if (userService.isUserExist(user)) {
            logger.error("Unable to create. A User with name {} already exist", user.getName());
            return new ResponseEntity(new CustomErrorType("Unable to create. A User with name " + 
            user.getName() + " already exist."),HttpStatus.CONFLICT);
        }
        userService.saveUser(user);
        return new ResponseEntity<String>(headers, HttpStatus.CREATED);
    }
1

Prawie bo ten @RequestBody sugeruje że masz tu @Controller zamiast @RestController.

0

Korzystam z @RestController czym mogę to zastąpić aby całość ładnie do siebie pasowała ?

0

@Shalom: mógłbyś podpowiedzieć czym najlepiej zastąpić adnotacje @Requestparam aby spełniało wymóg @RestControllera ?

0

Wydaje mi się ze dla rest controllera ta adnotacja w ogóle nie jest potrzebna, tak samo jak @ResponseBody dla wartości zwracanej.

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