10강 RESTful API
- 목차
- 내용
- RESTful API 웹 서비스
- JSON 데이터 포맷
- 학습 목표
- RESTful 섭스에 대한 이해와 설계 방식을 학습!
- 웹 서비스의 데이터 교환의 사실상 표준인 JSONn에 대해 알아보고
서비스 구현 시 활용해봅니다.
- 내용
- Open API(Application Programming Interface)의 개념
- Open API는 말 그대로 개방형 API이다.
- API가 응용 프로그램을 개발할 때 사용하는 인터페이스라는 의미.
- 프로그래밍에서 사용할 수 있는 개방되어 있는 상태의 인터페이스를 말합니다.
- Daum, Naver 등의 포털 사이트나 통계청, 기상청 등과 같은 관공서에서도
가지고 있는 데이터를 외부 응용 프로그램에서 사용할 수 있도록 Open API를 제공하고 있습니다. - Open API와 함께 자주 거론되는 기술이 REST이며, 대부분 Open API는 REST 방식으로 지원됩니다.
- REST(REpresentation Safe Transferful) API 란?
- HTTP URI + HTTP Method
- 자원을 메소드들을 이용하여 제어하는 방식.
- HTTP 규약에 근거하여 URI로 자원을 명시하고, Method 로 자원을 다루는 방식을 말합니다. - HTTP URI를 통해 제어할 자원(Resource)을 명시하고,
- HTTP Method (GET,POST,PUT,DELETE)를 통해 해당 자원(Resource)를 제어하는 명령을 내리는 방식의 아키텍처.
- HTTP 프로토콜에 정의된 4개의 메소드들이 자원(Resource)에 대한 CRUD Operation을 정의합니다.
- RESTful API는 HTTP와 URI 기반으로 자원에 접근할 수 있도록 제공하는 애플리케이션 개발 인터페이스
(REST의 원리는 따르는 시스템은 RESTful이란 용어로 지침합니다.)
- HTTP URI + HTTP Method
- RESTful 웹 서비스와 JSON/XML
- HTTP URI를 통해 자원을 다루다보면, URI로 데이터를 다루기 위해 XML/JSON 이란 방식을 사용하게 됩니다.
- XML은 태그로 인스턴스 등을 구성하며 자원 낭비가 있는 편이기에 JSON 이 많이 쓰임.
- JSON(JavaScript Object Notation)이란
- http://www.json.org
- JSON은 경량(lightweight)의 DATA-교환 방식
- javascript에서 객체를 만들 때 사용하는 표현식을 의미
- JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아,
최근에는 JSON이 XML을 대체해서 데이터 전송 등에 많이 사용 - 특정 언어에 종속되지 않으며, 대부분의 프로그래밍 언어에서
JSON 포맷의 데이터를 핸들링 할 수 있는 라이브러리를 제공하고 있음.
- JSON 라이브러리 - Jackson
- http://jackson.codehaus.org
- High-Perfomance JSON Processor!
- Jackson은 JSON 형태를 Java 객체로, Java 객체를 JSON 형태로 변환해주는 java 용 JSON 라이브러리.
- 가장 많이 사용하는 JSON 라이브러리입니다.
- Spring MVC 기반의 RESTful 웹 서비스 구현 절차!
- 1. RESTful 웹 서비스를 처리할 RestfulController 클래스 작성 및 Spring Bean으로 등록.
- 2. 요청을 처리할 메소드에 @RequestMapping @RequestBody와 @ResponseBody 어노테이션 선언
- JSON 만 return 하고 싶을 때 @ResponseBody 쓰면 되며, 자동으로 JSON 형식으로 바껴서 리턴.
- 3. REST Client Tool(Postman)을 사용하여 각각의 메소드 테스트
- 4. Ajax 통신을 하여 RESTful 웹서비스를 호출하는 HTML 페이지 작성
- RESTful Controller를 위한 핵심 어노테이션
- Spring MVC에서는 클라이언트에서 전송한 XML이나 JSON 데이터를 Controller에서
Java객체로 변환해서 받을 수 있는 기능(수신)을 제공하고 있음- @RequestBody : HTTP Request Body(요청 몸체)를 Java객체로 전달받을 수 있음.
- Java객체를 XML이나 JSON으로 변환해서 전송할 수 있는 기능(송신)을 제공하고 있음
- @ResponseBody : Java 객체를 HTTP Response Body(응답 몸체)로 전송할 수 있음.
- ex) ajax 로 select한 데이터만 받고 싶을 때! URL 변화, 리다이렉트는 필요없을 때!!!
- 이 때, Jackson 라이브러리가 있어야, java 객체를 Json 형태로 바꾸어줌!!
- Spring MVC에서는 클라이언트에서 전송한 XML이나 JSON 데이터를 Controller에서
- 실습 내용!
- RESTful service 개발 :: @ResponseBody
- Postman을 통한 테스트
'Room 102. Back-end > Spring' 카테고리의 다른 글
[실전 개발자를 위한 Spring Framework ] 강의 - JUnit (0) | 2020.05.31 |
---|---|
[실전 개발자를 위한 Spring Framework ] 강의 - Static (0) | 2020.05.31 |
[실전 개발자를 위한 Spring Framework ] 강의 - HTTP 파라미터 처리 (0) | 2020.05.30 |
[실전 개발자를 위한 Spring Framework ] 강의 - @Controller (0) | 2020.05.30 |
[실전 개발자를 위한 Spring Framework ] 강의 - MVC 패턴 (0) | 2020.05.28 |