REST(Representational State Transfer)
- 하나의 URI(Uniform Resource Identifier)는 하나의 고유한 리소스(Resource)를 대표하도록 설계된다는 개념에 전송방식을 결합해서 원하는 작업을 지정한다.
- 예를 들어 '/board/123'은 게시물 중에서 123번이라는 고유한 의미를 가지도록 설계하고, 이에 대한 처리는 GET, POST 방식과 같이 추가적인 정보를 통해서 결정한다.
✓ REST 방식의 데이터 처리를 위한 여러 종류의 어노테이션
어노테이션 | 기능 |
@RestController | Controller가 REST 방식을 처리하기 위한 것임을 명시 |
@ResponseBody | 일반적인 JSP와 같은 뷰로 전달되는 게 아니라 데이터 자체를 전달하기 위한 용도 |
@PathVariable | URL 경로에 있는 값을 파라미터로 추출하려고 할 때 사용 |
@CrossOrigin | Ajax의 크로스 도메인 문제를 해결해주는 어노테이션 |
@RequestBody | JSON 데이터를 원하는 타입으로 바인딩 처리 |
@RestController
- REST 방식에서 가장 먼저 기억해야 하는 점은 서버에서 전송하는 것이 순수한 데이터라는 점이다.
- 기존의 Controller에서 Model에 데이터를 담아서 View(JSP 등등)로 전달하는 방식이 아니므로 기존의 Controller와는 조금 다르게 동작한다.
- 스프링4에서부터는 @Controller 외에 @RestController라는 어노테이션을 추가해서 해당 Controller의 모든 메서드의 리턴 타입을 기존과 다르게 처리한다는 것을 명시한다.
- @RestController 이전에는 @Controller와 메서드 선언부에 @ResponseBody를 이용해서 동일한 결과를 처리할 수 있다.
- @RestController는 메서드의 리턴 타입으로 사용자가 정의한 클래스 타입을 사용할 수 있고, 이를 JSON 이나 XML로 자동으로 처리가 가능하다.
✓ 설정
https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
https://mvnrepository.com/artifact/com.google.code.gson/gson
'Java > Spring' 카테고리의 다른 글
[Spring] 페이징 처리(dto, mapper) (0) | 2020.02.18 |
---|---|
[Spring] @RestController의 반환 타입 (0) | 2020.02.14 |
[Spring] Transaction 정리, 설정 (0) | 2020.02.13 |
[Spring] AOP 정리 (0) | 2020.02.12 |
[Spring] Controller의 Exception처리, @ControllerAdvice (0) | 2020.02.03 |