BaseResponse 클래스
상품 공급 시스템 - 회원 관련 기능 구현
테이블 생성
디렉토리 구조
클래스 생성
ResponseStatus
package com.example.tranche.global.common.response;
public enum ResponseStatus {
SUCCESS(1000, "OK"),
USABLE_NICKANME(1001, "사용 가능한 닉네임입니다."),
NICKNAME_ALREADY_EXISTS(1003, "이미 존재하는 닉네임입니다."),
EMAIL_ALREADY_EXISTS(2001, "이미 존재하는 이메일입니다.");
private int code;
private String description;
private ResponseStatus(int code, String description) {
this.code = code;
this.description = description;
}
public int getCode() { return code; }
public String getDescription() { return description; }
}
요청의 결과를 표현하는 enum
객체이다.
code
- 요청에 대한 응답을 숫자로 표현한 것이다.description
- 개발자의 이해를 돕기 위한 간단한 설명이다.
BaseResponse
package com.example.tranche.global.common.response;
import com.fasterxml.jackson.annotation.JsonInclude;
import static com.example.tranche.global.common.response.ResponseStatus.SUCCESS;
public class BaseResponse<T> {
private final int code;
private final String description;
@JsonInclude(JsonInclude.Include.NON_NULL)
private final T data;
public int getCode() { return code; }
public String getDescription() { return description; }
public T getData() { return data; }
/**
* 정보를 요청한 경우
* @param data
*/
public BaseResponse(T data) {
this.code = SUCCESS.getCode();
this.description = SUCCESS.getDescription();
this.data = data;
}
/**
* 응답이 예/아니오/오류 인 경우
* @param status
*/
public BaseResponse(ResponseStatus status) {
this.code = status.getCode();
this.description = status.getDescription();
this.data = null;
}
}
응답에는 두 가지 경우가 있다. 첫 번째는 예/아니오/오류 와 같이 간단한 경우이고 두 번째는 정보를 전달해줘야 하는 경우이다.
예컨데 특정 닉네임을 사용할 수 있는지에 대해 요청하는 경우가 첫 번째에 해당되고 특정 상품의 정보에 대해 요청하는 경우가 두 번째에 해당된다.
Comments