실전 개발자를 위한 Spring Framework Day10
Restful API
1. OpenAPI(Application Programming Interface)란?
- 프로그래밍에서 사용할 수 있는 개방된 인터페이스
- 포털 사이트나 관공서에서 가지고 있는 데이터를 외부 응용 프로그램에서 사용할 수 있도록 Open API를 제공하고 있다
- 대부분의 Open API는 REST 방식으로 지원되고 있다
2. RESTful
REST(REpresentational State Transfer, 표현 상태 전송) API란?
- HTTP URI + HTTP Method
- URI을 통해 제어할 자원을 명시하고Method(GET, POST, PUT, DELETE)를 통해 해당 자원을 제어할 명령을 내리는 방식의 아키텍처
- HTTP 프로토콜에 정의된 4개의 메서드들이 자원에 대한 CRUD Operation을 정의
- POST: Create(Insert)
- GET: Read(Select)
- PUT: Update or Create
- DELETE: Delete
3. JSON(JavaScript Object Notation, 자바스크립트 객체 표기법)이란?
- http://www.json.org
- Javascript에서 객체를 만들 때 사용하는 표현식을 의미
- JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서 데이터 전송에 자주 사용
- 특정언어에 종속되지 않으며 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를 핸들링 할 수 있는 라이브러리를 제공
JSON 형식
- key-value 형식의 쌍
- 배열도 담을 수 있음
{
"Key":"value",
"name":"홍길동",
"age":"20",
"hobby":["운동","독서"]
}
Jackson 라이브러리
- http://jackson.codehaus.org
- JSON 형태를 java 객체로, java 객체를 JSON 형태로 변환해주는 Java 라이브러리
4. RESTful 서비스 구현
Spring MVC 기반 RESTful 웹서비스 구현 절차
- RESTful 웹서비스를 처리할 RestfulController 클래스 작성 및 Spring Bean 등록
- 요청을 처리할 메서드에 @RequestMapping, @RequestBody, @ResponseBody 어노테이션 선언
- REST Client Tool(Postman)을 사용하여 각각의 메서드 테스트
- Ajax 통신을 통해 RESTful 웹서비스를 호출하는 HTML페이지 작성
RESTful Controller를 위한 핵심 어노테이션
- @RequestBody: HTTP Request Body를 Java객체로 전달
- @ResponseBody : Java 객체를 HTTP Response Body로 전송