본문 바로가기

Java/Spring

[Spring] @RestController의 반환 타입

@RestController는 메서드의 반환 타입으로 사용자가 정의한 클래스 타입을 사용할 수 있고, 이를 JSON이나 XML로 자동으로 처리가 가능하다.


1) 단순 문자열 반환

- @Controller는 문자열을 반환하는 경우에는 JSP파일의 이름으로 처리하지만,  @RestController의 경우에는 순수한 데이터가 된다.

- @GetMapping에 사용된 produces 속성은 해당 메서드가 생상하는  MIME타입을 의미한다. 문자열로 직접 지정할 수도 있고, 메서드 내의 MediaType이라는 클래스를 이용할 수도 있다.

 

 

MIME이란 무엇인가?

MIME이란 무엇인가? MIME이란? Multipurpose Internet Mail Extensions의 약자로 간략히 말씀을 드리면 파일 변환을 뜻한다고할 수 있습니다. MIME는 이메일과 함께 동봉할 파일을 텍스트 문자로 전환해서 이메일..

server-talk.tistory.com

 

브라우저에서 produces의 속성값으로 지정된 값을 확인할 수 있다.

 

 


2) 객체의 반환

- 객체를 반환하는 작업은 JSON이나 XML을 이용한다.

 

XML과 JSON 방식의 데이터를 생성할 수 있는 클래스를 컨트롤러에서 작성

 

- XML

브라우저가 받은 데이터가 XML이기 때문에 보이는 화면
Content-Type은 xml데이터

 

- JSON

 

+ @GetMapping 이나 @RequestMapping의 produces 속성은 반드시 지정해야 하는 것은 아니므로 생략하는 것도 가능하다.

 


3. 컬렉션 타입의 객체 반환

- LIST

 

- MAP

 : MAP을 이용하는 경우에는 key에 속하는 데이터는 XML로 변환되는 경우에 태그의 이름이 되기 때문에 문자열을 지정한다.

 


4. ResponseEntity 타입

- REST 방식으로 호출하는 경우는 화면 자체가 아니라 데이터 자체를 전송하는 방식으로 처리되기 때문에 데이터를 요청한 쪽에서는 정상적인 데이터인지 구분할 수 있는 확실한 방법을 제공해야 한다.

- ResponseEntity는 데이터와 함께 HTTP 헤더의 상태 메시지 등을 같이 전달하는 용도로 사용한다.

- HTTP 상태코드와 에러 미시지 등을 함께 데이터를 전달할 수 있기 때문에 받는 입장에서는 확실하게 결과를 알 수 있다.

'Java > Spring' 카테고리의 다른 글

[Spring] 스프링 MVC의 기본 구조  (0) 2020.02.29
[Spring] 페이징 처리(dto, mapper)  (0) 2020.02.18
[Spring] REST + @RestController 정리, 설정  (0) 2020.02.13
[Spring] Transaction 정리, 설정  (0) 2020.02.13
[Spring] AOP 정리  (0) 2020.02.12