Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

메모장

Rest Api 응답 본문

Java

Rest Api 응답

doopang 2022. 12. 26. 10:34

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