메모장
Rest Api 응답 본문
CommonResult
@Getter
@Setter
public class CommonResult {
@ApiModelProperty(value = "응답 성공여부 : true/false")
private boolean success;
@ApiModelProperty(value = "응답 코드 번호 : > 0 정상, < 0 비정상")
private int code;
@ApiModelProperty(value = "응답 메시지")
private String msg;
}
SingleResult
@Getter
@Setter
public class SingleResult<T> extends CommonResult {
private T data;
}
ListResult
@Getter
@Setter
public class ListResult<T> extends CommonResult {
private List<T> list;
}
Service
@Service
public class ResponseService {
public enum CommonResponse {
SUCCESS(0, "성공하였습니다."),
FAIL(-1, "실패하였습니다.");
int code;
String msg;
CommonResponse(int code, String msg) {
this.code = code;
this.msg = msg;
}
public int getCode() { reutrn code; }
public String getMsg() { return msg; }
}
// 단일건 결과를 처리하는 메소드
public <T> SingleResult<T> getSingleResult(T data) {
SingleResult<T> result = new SingleResult<>();
result.setData(data);
setSuccessResult(result);
return result;
}
// 다중건 결과를 처리하는 메소드
public <T> ListResult<T> getListResult(List<T> list) {
ListResult<T> result = new ListResult<>();
result.setList(list);
setSuccessResult(result);
return result;
}
// 성공 결과만 처리하는 메소드
public CommonResult getSuccessResult() {
CommonResult result = new CommonResult();
setSuccessResult(result);
return result;
}
// 실패 결과만 처리하는 메소드
public CommonResult getFailResult(int code, String msg) {
CommonResult result = new CommonResult();
result.setSuccess(false);
result.setCode(code);
result.setMsg(msg);
return result;
}
// 결과 모델에 api 요청 성공 데이터를 세팅해주는 메소드
private void setSuccessResult(CommonResult result) {
result.setSuccess(true);
result.setCode(CommonResponse.SUCCESS.getCode());
result.setMsg(CommonResponse.SUCCESS.getMsg());
}
}
Controller
@RestController
@RequiredArgsConstructor
@RequestMapping("/info")
public class InfoController {
private final ResponseService responseService;
private final NoticeService noticeService;
@GetMapping("/notice/{seq}")
@ApiOperation("공지사항 조회")
public CommonResult getNotice(@PathVariable Long seq) {
return responseService.getSingleResult(noticeService.getNotice(seq));
}
}
'Java' 카테고리의 다른 글
테스트 코드 기본 세팅 (0) | 2023.01.04 |
---|---|
JPA Pageable 이용한 페이징 처리 (0) | 2022.12.27 |
Custom Exception 만들기 (0) | 2022.12.20 |
JPA 저장된 정렬 정보 이용하여 리스트 조회 (0) | 2022.12.07 |
소수점 0 제거 (0) | 2022.11.24 |