- 프로젝트명: "뉴스피드 만들기"
- 프로젝트 소개: 내 게시물을 포함한 모든 게시물을 볼 수 있는 공간입니다.
- 시연 영상: https://www.youtube.com/watch?v=DeojTSjR9dY
- 사용 기술: #SpringBoot #JPA #MySQL #Redis
GitHub: https://github.com/k-jaehyun/NewsFeed
팀 노션: 링크
회원가입 및 로그인 기능을 다른분께서 만들어주셨다.
코드를 살펴보니 상태 코드를 넣으셨길래 따라 만들어봤다.
@PostMapping("/post")
public ResponseEntity<CommonResponseDto> createPost(
@RequestBody PostRequestDto reqeustDto,
@AuthenticationPrincipal MemberDetailsImpl memberDetails) {
try {
postService.createPost(reqeustDto,memberDetails.getMember());
} catch (IllegalArgumentException e) {
return ResponseEntity.badRequest()
.body(new CommonResponseDto(e.getMessage(), HttpStatus.BAD_REQUEST.value()));
}
return ResponseEntity.ok().body(new CommonResponseDto("게시물 작성 성공", HttpStatus.OK.value()));
}
ResponseEntity
클래스에 CommonResponseDto
라는 String 과 Integer만 있는 Dto
클래스를 넣어준 뒤, try-catch
문으로 감싸며 실행문을 넣어주면 성공, 실패에 따른 상태코드를 전달 할 수 있는 것이다.
처음 접하는 세계에 신기해하며 더 자세히 살펴봤다.
httpentity를 상속받는, 결과 데이터와 HTTP 상태 코드를 직접 제어할 수 있는 클래스이다.
ResponseEntity에는 사용자의 HttpRequest에 대한 응답 데이터가 포함되며, HTTP 아케텍쳐 형태에 맞게 Response를 보내주기도 한다.
에러 코드와 같은 HTTP상태 코드를 전송하고 싶은 데이터와 함께 전송할 수 있기 때문에 좀 더 세밀한 제어가 필요한 경우 사용된다고 한다.
ReponseEntity 구조는 RequestEntity와 ResponseEntity는 HttpEntity 클래스를 상속받아 구현했기 때문에 HttpStatus, HttpHeaders, HttpBody를 포함한다.