Spring ResponseEntity для опций

Конструкция, которую я часто использую в своем коде, такова:

@RestController
public class HelloController {
  @Autowired
  private HelloService helloService;

  @GetMapping("/hello")
  ResponseEntity<Message> getHelloMessage() {
    Optional<Message> message = helloService.getMessage();
    if (message.isPresent()) {
      return ResponseEntity.ok(message.get());
    }
    return new ResponseEntity(HttpStatus.NO_CONTENT);
  }
}

Следуя принципам DRY, я отвлек эту конструкцию;

private <T> ResponseEntity<T> response(Optional<T> value) {
  if (value.isPresent()) {
    return ResponseEntity.ok(value.get());
  }
  return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}

Так что мой код становится;

  @GetMapping("/hello")
  ResponseEntity<Message> getHelloMessage() {
    return response(helloService.getMessage());
  }

Было бы очень приятно, если бы эта конструкция была частью класса ResponseEntity с весны, чтобы мой код стал;

 @GetMapping("/hello")
 ResponseEntity<Message> getHelloMessage() {
   return ResponseEntity.optional(helloService.getMessage());
 }

Считаете ли вы, что это хорошая идея для реализации такого метода в ResponseEntity?

spring,spring-web,

2

Ответов: 0

Spring ResponseEntity для опций

Конструкция, которую я часто использую в своем коде, такова:

@RestController
public class HelloController {
  @Autowired
  private HelloService helloService;

  @GetMapping("/hello")
  ResponseEntity<Message> getHelloMessage() {
    Optional<Message> message = helloService.getMessage();
    if (message.isPresent()) {
      return ResponseEntity.ok(message.get());
    }
    return new ResponseEntity(HttpStatus.NO_CONTENT);
  }
}

Следуя принципам DRY, я отвлек эту конструкцию;

private <T> ResponseEntity<T> response(Optional<T> value) {
  if (value.isPresent()) {
    return ResponseEntity.ok(value.get());
  }
  return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}

Так что мой код становится;

  @GetMapping("/hello")
  ResponseEntity<Message> getHelloMessage() {
    return response(helloService.getMessage());
  }

Было бы очень приятно, если бы эта конструкция была частью класса ResponseEntity с весны, чтобы мой код стал;

 @GetMapping("/hello")
 ResponseEntity<Message> getHelloMessage() {
   return ResponseEntity.optional(helloService.getMessage());
 }

Считаете ли вы, что это хорошая идея для реализации такого метода в ResponseEntity?

02весна, весна-веб,
Похожие вопросы