<aside> ☝🏻 Entity로 하면 불필요한 데이터도 가져와서 딱 필요한 데이터만 통신하기위해서 만듬
</aside>
UserRegisterDto.class(record로 만드셈)https://velog.io/@power0080/java자바-record를-entity로
Dto의 장점)public record UserRegisterDto() {
// 회원가입 요청 RequestDto
public record UserSignUpRequestDto(
String email,
//Entity에서 만든 password가 rawPassword로 매핑됨
@JsonProperty("password")
//Vaildation 요기서 걸려줌 (유효성 검사)
@Pattern(regexp = "^(?=.*[A-Za-z])(?=.*\\\\d)(?=.*[@$!%*#?&])[A-Za-z\\\\d@$!%*#?&]{8,}$")
String rawPassword,
String nickname,
// Enum 타입이면 그 Enum class 라는것을 알려줘야함
@EnumMapping()
Gender gender
)
{
// 이중괄호 안에서는 초깃값이나 예외 등을 줄 수 있음(소괄호 안 쓰는 생성자)
public MemberSignUpRequestDto { //소괄호 없쥬 ?
// 중괄호 생략가능 근데 썬데이에서는 중괄호 넣으라하는데
// 원래 if는 한단위로 했음 암튼 만드는사람 마음(나는 생략할겨)
if (email == null) email = "";
// 내용넣고 ...
}
}
// 회원가입 응답 ResponseDto
// 어떻게 응답해서 줄껀지 요기서 정해줄수있음
public record UserSignUpResponseDto(
//딱히 반환안해도 될거같아서 일단 불리언
boolean success
)
{// 요기도 작업필요하면 작업해 줄 수 있음}
// 로그인 요청 (위랑같음)
public record UserLoginRequestDto(
String email,
@JsonProperty("password")
@Pattern(regexp = "^(?=.*[A-Za-z])(?=.*\\\\d)(?=.*[@$!%*#?&])[A-Za-z\\\\d@$!%*#?&]{8,}$")
String rawPassword
){}
public record UserLoginResponseDto(
String token
){}
}