[Spring] REST 기초 - 1

 ※ 사전 개념

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 을 덧붙인 경우





- 단순히 url 로 이동하는 경우 xml 형식으로 값을 반환
- url의 맨 뒤에 .json 을 덧붙인 경우, 해당 예제의 형식으로 반환한다.
- 주로 JQuery-Json 을 사용한다.


댓글