일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 언리얼뮤지컬
- 디자드
- 스마일게이트
- 정글사관학교
- VUE
- Express
- Unseen
- Enhanced Input System
- Bootstrap4
- 데이터베이스
- 파이썬서버
- 미니프로젝트
- Ajax
- 마인크래프트뮤지컬
- EnhancedInput
- 스터디
- flask
- 게임개발
- 언리얼
- node
- R
- JWT
- 프린세스메이커
- 언리얼프로그래머
- 카렌
- 으
- 프메
- 알고풀자
- 레베카
- Jinja2
- Today
- Total
Today, I will
[스프링부트] 요구사항에 따른 회원가입 api 작성 본문
DTO, Controller, 순으로 작성하도록 한다.
1. 회원가입 요구사항 확인
2. 회원가입 api 작성 (DTO)
회원가입이란, 데이터베이스에 사용자를 등록하는 행위이다. 이제 회원가입에 대한 api를 작성해보도록 한다. http POST 메소드를 사용해서 통신을 할 것이다. POST 메소드는 데이터를 리퀘스트 바디에 담아서 전달해준다. 즉, 데이터를 숨겨서 보내기 때문에 GET보다 보안에 조금 더 유리한 부분이 있다. 회원가입을 할 때에는 사용자가 이메일 주소와 비밀번호, 비밀번호 확인, 닉네임, 핸드폰번호, 주소, 상세 주소를 입력해서 회원가입을 진행한다.
(1) 3000번 포트 POST 리퀘스트 매핑은 /api/auth/signUp
(2) 리퀘스트 바디에 데이터를 담기 ( userEmail, userPassword, userNickname, userPhoneNumber, userAddress, userAddressDetail ) <- 이렇게 리퀘스트 바디에 담아 보낼 것
다만 아래 그림을 참고하여 DTO를 만들어주어야 한다.
(3) result, message, data {token, exprTime} : 앞으로 모든 리스폰스가 이 형태로 자를 것이다. data는 명확하지 않기 때문에 Generic으로 하도록 한다.
result(불린타입), message(문자열 타입의 메시지), data 이 각각의 포맷을 만들도록 한다.
package com.example.board.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor(staticName = "set" )
public class ResponseDto<D> {
private boolean result;
private String message;
private D data;
public static <D> ResponseDto<D> setSuccess(String message, D data){
return ResponseDto.set(true, message, data);
}
public static <D> ResponseDto<D> setFailed(String message){
return ResponseDto.set(false, message, null);
}
}
data {token, exprTime} 반환해주는데, token같은 경우는 추후 문자열로 jwt를 사용하게 될 것이다. exprTime은 jwt의 만료 기간을 알려주기 위해서 반환을 해주도록 할 것이다.
리스폰스도 컨트롤러 레이어에서 뷰 레이어로 이동하므로 아래 그림과 같이 데이터를 전송하므로 DTO로 작성해준다.
package com.example.board.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SignUpResponseDto {
private String token;
private int exprTime;
}
3. 회원가입 api 작성 (Controller)
3000번 포트 POST 리퀘스트 매핑은 /api/auth/signUp
을 구현해야하므로 우선 /api/auth 컨트롤러를 하나 작성해주도록 한다.
컨트롤러 패키지 아래에다가 AuthController를 작성한다.
package com.example.board.controller;
import com.example.board.dto.ResponseDto;
import com.example.board.dto.SignUpDto;
import com.example.board.dto.SignUpResponseDto;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/auth")
public class AuthController {
@PostMapping("/signUp")
public ResponseDto<SignUpResponseDto> signUp(@RequestBody SignUpDto requestBody){
return null;
}
}
'JAVA, SPRING > Spring boot, React' 카테고리의 다른 글
[스프링 부트] 로그인시 인증 토큰 jwt 발급과 스프링 시큐리티 (0) | 2023.06.08 |
---|---|
[Springboot | React] 리액트 기초(State, props, stores)와 Spring boot와 통신 (3) | 2023.06.07 |