패키지 구성
계층형 VS 도메인형
요청, 응답 형식
요청
~~request param~~
VS path variable
request param
사용 가능응답 형식 통일성
ReponseDTO
클래스 + ResponseCode
생성@Data
public class ResponseDTO<T> {
private Integer status;
private String code;
private String message;
private T data;
public ResponseDTO(ResponseCode responseCode, T data) {
this.status = responseCode.getStatus().value();
this.code = responseCode.name();
this.message = responseCode.getMessage();
this.data = data;
}
}
@RequiredArgsConstructor
@Getter
public enum ResponseCode {
/**
* User
*/
SUCCESS_REGISTER(HttpStatus.OK, "회원가입을 성공했습니다."),
private final HttpStatus status;
private final String message;
}
ErrorResponseDTO
+ ErrorCode
생성
DTO
ErrorResponseDTO
복잡한 경우 → Mapper 클래스를 두어 작성하자
아닐 경우 → DTO, 엔티티에 작성 (아래 예시 참고)