※ 사전 개념
URI(Uniform Resource Identifier) : 웹 페이지 등의 주소를 나타내는 URL과 자원을 표현하는 식별자를 포함하는 개념
(URL+자원)
REST(Representational State Transfer) 방식은 URI를 통해 자원을 명시, 데이터 처리를 위한 HTTP 메소드(CRUD Operation : GET/POST/PUT/DELETE/...)를 적용하는 방식이다.
Spring 에서 controller에서 어노테이션을 이용하여 처리한다.
※어노테이션
@RestController : 해당 controller가 REST 방식을 처리하기 위함인 것을 명시
@ResponseBody : View로의 전달이 아닌 데이터 자체(json 등)의 전달임을 명시
@PathVariable : URL 경로에 있는 값을 파라미터로 추출하려고 사용
@CrossOrigin : Ajax의 크로스 도메인 문제를 해결해주는 어노테이션
@RequestBody : Json데이터를 원하는 타입으로 바인딩 처리
- @RestController 어노테이션 내부의 다른 어노테이션은 기본적으로 @ResponseBody 와 동일한 동작을 하게 만들 수 있다.
※ JSON 형식을 사용하기 위한 pom.xml 설정
(실습은 아래의 dependency로 진행됨)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <!-- 객체를 json/xml 변환 --> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.6</version> </dependency> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml --> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.9.6</version> </dependency> <!-- 테스트 용, java 인스턴스의 join 타입의 문자열로 --> <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.2</version> | cs |
@Controller 대신 @RestController 사용 시, 다른 메소드들은 @Responsebody 가 기본으로 적용되어 View의 Jsp 파일 대신 Ajax 방식으로 반환한다.
| -예제 VO(DTO) |
| - 사용 예제(상단에 RestController 기입 완료) |
※@GetMapping 의 파라미터의 경우, produces 의 생략이 가능하다.
(application_json_utf8_value, application_xml_value 는 default값)
| - 실행 후 url 로 이동할 경우 |
| - url 맨 뒤, .json 을 덧붙인 경우 |
댓글
댓글 쓰기