유블로그

[Spring] Spring Rest API 본문

Spring

[Spring] Spring Rest API

yujeong kang 2020. 11. 5. 15:56

REST API

  • 공공데이터를 외부 응용 프로그램에서 사용할 수 있도록 OPEN API를 제공하는데, 사용기술은 REST API이다. 

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

  • HTTP URI를 통해 제어할 자원을 명시하고, HTTP Method(GET, POST, PUT, DELETE)을 통해 해당 자원을 제어하는 명령을 내리는 방식의 아키텍처.

+ 리소스는 JSON, XML 등의 다양한 형태로 나타낼 수 있다.

 


기존 서비스와 REST 서비스 차이점?


기존 서비스 - 요청에 대한 처리를 한 후 가공된 data 를 이용하여 특정 플랫폼에 적합한 형태의 View로 만들어서 반환한다.

REST - data 처리만 한다거나, 처리 후 반환 될 data 가 있다면 JSON 이나 XML 형식으로 전달한다. View에 대해서는 신경쓰지 않는다.



REST 의 암묵적인 표준들


기존의 웹 접근 방식과 REST API 방식 차이점


필요한 library

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-databind</artifactId>
	<version>2.11.0</version>
</dependency>

Jackson library

: jackson-databind 라이브러리는 객체를 JSON 포맷의 문자열로 변환시켜서 브라우저로 전송

jackson-dataformat-xml 라이브러리는 객체를 xml로 브라우저로 전송

 


REST 관련 Annotation

@RestController Controller 가 REST 방식을 처리하기 위한 것임을 명시
@ResponseBody JSP 같은 뷰로 전달되는 것이 아니라 데이터 자체를 전달
@PathVariable URL 경로에 있는 값을 파라미터로 추출
@CrossOrigin Ajax 크로스 도메인 문제를 해결
@RequestBody JSON 데이터를 원하는 타입으로 바인딩