개발

@RestController

Domaya 2023. 1. 11. 21:11

REST는 'Representational State Transfer'의 약어로 하나의 URI는 하나의 고유한 리소스를 대표하도록 설계된다는 개념에 전송방식을 결합해서 원하는 작업을 지정한다.

@RestController는 JSP와 달리 순수한 데이터를 반환하는 형태이므로 다양한 포맷의 데이터를 전송할 수 있다. 주로 많이 사용하는 형태는 일반 문자열이나 JSON, XML 등을 사용한다.

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

 

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

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

 

@RestController에서 파라미터?

@PathVariable : 쿼리 스트링으로 받을 때 사용

@RequestBody : 전달된 요청(request)의 내용(body)을 이용해서 해당 파라미터의 타입으로 변환을 요구한다. 내부적으로 HttpMessageConverter타입의 객체들을 이용해서 다양한 포맷의 입력 데이터를 변환할 수 있다.