inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 기반 REST API 개발

Event REST API

안녕하세요 선생님 Controllor와 RestController 에 대해서 궁금증이 생겨 댓글 남깁니다.

265

장원익

작성한 질문수 18

0

안녕하세요 선생님 Controllor와 RestController 에 대해서 궁금증이 생겨 댓글 남깁니다.

질문을 장황하게 썼다가 가독성이 안 좋은것 같아서 짧게 정리해보겠습니다!

- @RestController 는 @Controller 에 @ResponseBody 가 붙은 것이다.

- @ResponseEntity 는 HTTP Header 와 같이 Body 가 아닌 다른 정보를 세밀하게 조작할 때 사용한다.

- 그럼 HTTP Header와 같은 세부 정보를 이용할 때는 @Controller + ResponseEntity 를 이용한다.

이게 맞나요?

아니면 

- @RestController의 목적은 @Controlloer와 달리 View와 같은 정보를 반환하지 않고 REST 한 리소스를 반환하기 위함이다.

- ResponseEntity 를 사용하면 Body와 Header를 조작하는데, 해당 컨트롤러의 목적에 맞게 (REST API를 제공하는 ) @ResponseBody 어노테이션이 필요 없음에도 불구하고 @RestController 를 이용한다.

뭐가 맞을까요?

spring java rest-api

답변 1

1

백기선

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RestController.html

문서에 쓰여있다시피 해당 컨트롤러의 모든 메소드에 @ResponseBody를 붙이지 않도록 편의성을 돕기 위한 애노테이션입니다.

A convenience annotation that is itself annotated with @Controller and @ResponseBody.

Types that carry this annotation are treated as controllers where @RequestMapping methods assume @ResponseBody semantics by default.

말씀하신대로 ResponseEntity를 쓰면 @Controller든 @RestController든 상관없이 응답 본문을 만들고 헤더도 설정할 수 있는데요. 글쎄요. @RestController에서 모든 핸들러가 ResponseEntity 를 리턴하는게 아니라면 그런게 맞다 틀리다를 따지는게 무슨 의미가 있을까요?

Spring 시큐리티 관련해서 WebSecurityConfigurationAdapter

0

72

1

junit5 사용하시는 분들

0

85

1

자바 빈 스펙을 준수하는지 체크하는 테스트

0

233

2

REST API 개발 중 비즈니스 로직 적용 부분의 JSON 에러

0

241

1

스프링 부트 3버전에서의 실습

0

188

1

java.lang.AssertionError: Status

0

528

2

spring doc 관련 파일 생성 관련 배포 관련 질문 드립니다.

0

284

1

섹션2 201응답받기 부분 테스트 404에러 질문입니다

0

737

1

강의 자료가 404입니다 확인 부탁 드려요!

0

474

1

연동 DB문의

0

356

1

이벤트 Repository강의 중 Event 클래스에 private Integer Id; 위치 질문

0

503

1

(Mac) postgressql 관련하여 port kill 해도 다시 살아나는 경우

0

378

0

maven으로 생성한 docs파일(index.html)에서의 not found 오류 질문

0

620

1

테스트 오류 질문드립니다.

0

510

1

docs 요청값이 반영이 안되네요... (해결)

-1

390

1

psql 적용 후 에러

0

816

2

mvn package 시 다음과 같은 에러가 나시면

0

760

2

Event에 Account manager를 추가했으면 문서화 필요

0

272

1

2년 훨씬 전 부터 Restlet-> Talend API 로 바뀌었습니다~

1

472

1

asciidoc 추가 스니펫 에러 해결법

0

397

1

_links 는 현재 fieldWithPath 를 해주지 않아도 됩니다.

0

420

3

깃랩 처음 사용자를 위한 index.adoc raw 보는 법

0

329

1

eclipse 쓰시는 분을 위한 maven-resources-plugin 팁

0

329

1

부트 + jupiter 인 경우 설정법

0

340

1