아래와 같이 값 정보 반 때 이런 로직을 만들고 싶다.
id 값이 있다면 => 전체 목록을 반환
id 값이 없다면 => id 값 정보 반환
@GetMapping("/{id}")
public ResponseEntity<CommonResponse> getLicenses(
LicenseSearch licenseSearch
, @PathVariable(name="id", required = false) long id) {
if(id == 0){
return ResponseEntity.ok().body(
new CommonResponse(
licenseService.getAllLicenseByLicenseSearch(licenseSearch)
, LicenseHateoas.values()
)
);
}else{
return ResponseEntity.ok().body(
new CommonResponse(
licenseService.getLicenseById(id)
)
);
}
}
현재는 이렇게 두가지 메소드를 타고 있는데 어떤게 더 나은 방법인지 고민을 해봐야 겠다,
명확하다고 생각하는 법은 이 방법이지만 위의 방법처럼 할 경우에는 하나의 메소드에서 분기 처리가 가능하기 때문에 메소드가 많아지지 않고,
근데 또 하나의 API 는 하나의 일을 해야 하니까 이 방법이 맞는 것 같기도 하고.
진지하게 고민을 좀 해봐야 겠고만.
@GetMapping("")
public ResponseEntity<CommonResponse> getLicenses( LicenseSearch licenseSearch ) {
return ResponseEntity.ok().body(
new CommonResponse(
licenseService.getAllLicenseByLicenseSearch(licenseSearch)
, LicenseHateoas.values()
)
);
}
@GetMapping("/{id}")
public ResponseEntity<CommonResource> getLicenses(@PathVariable(name = "id", required = true) long id) {
return ResponseEntity.ok().body(new CommonResource(licenseService.getLicenseById(id), LicenseHateoas.values()));
}
'개발중 > Spring' 카테고리의 다른 글
[ 스프링 ] 의존성 주입 방법 ? (0) | 2021.12.02 |
---|---|
스프링 대용량 엑셀 (excel) 업로드 (0) | 2021.11.08 |
@ResponseBody 어노테이션의 post 와 put 의 차이 (0) | 2021.10.04 |
[ Spring Security - BCryptPasswordEncoder ] 비밀번호 암호화 (0) | 2021.08.18 |
vo Null 처리 (0) | 2021.08.17 |