뉴스피드 만들기 (팀프로젝트) v1 시작: ResponseEntity란?

김재현·2023년 11월 22일
0

TIL

목록 보기
37/88
post-thumbnail

구현 기능

  • 사용자 인증 기능(회원가입, 로그인, JWT)
  • 프로필 관리
  • 게시물 CRUD 기능
  • 뉴스 피드 페이지
  • 댓글 CRUD 기능
  • 좋아요 기능

회원가입 및 로그인

회원가입 및 로그인 기능을 다른분께서 만들어주셨다.
코드를 살펴보니 상태 코드를 넣으셨길래 따라 만들어봤다.

@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문으로 감싸며 실행문을 넣어주면 성공, 실패에 따른 상태코드를 전달 할 수 있는 것이다.

처음 접하는 세계에 신기해하며 더 자세히 살펴봤다.

ResponseEntity란,

httpentity를 상속받는, 결과 데이터와 HTTP 상태 코드를 직접 제어할 수 있는 클래스이다.

ResponseEntity에는 사용자의 HttpRequest에 대한 응답 데이터가 포함되며, HTTP 아케텍쳐 형태에 맞게 Response를 보내주기도 한다.

에러 코드와 같은 HTTP상태 코드를 전송하고 싶은 데이터와 함께 전송할 수 있기 때문에 좀 더 세밀한 제어가 필요한 경우 사용된다고 한다.

ReponseEntity 구조는 RequestEntity와 ResponseEntity는 HttpEntity 클래스를 상속받아 구현했기 때문에 HttpStatus, HttpHeaders, HttpBody를 포함한다.


관련 포스팅

Following Post

profile
I live in Seoul, Korea, Handsome

0개의 댓글