Restful API

bacccine·2022년 6월 28일
0

spring

목록 보기
10/10

Open API란?

개방형 API(Application Programming Interface)
프로그래밍에서 사용할 수 있는 개방되어 있는 상태의 인터페이스를 의미한다
대부분의 Open API는 REST 방식으로 지원되고 있다
주로 XML 웹 서비스 방식과 Restful 방식으로 작성되고 있다

REST API(REpresentational Safe Transferful)란?

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

HTTP 프로토콜에 정의된 4개의 메서드들이 자원에 대한 CRUD Operation을 정의한다

Http MethodCRUD
POSTCreate(Insert)
GETRead(Select)
PUTUpdate 또는 Create
DELETEDelete

URI에 동사를 포함하는 것을 지양하는 것이 REST API의 명명규칙 중 하나
API의 요청과 응답은 보통 XML과 JSON 타입이나, 최근 JSON 타입인 경우가 많음

JSON이란?

경량 DATA 교환 형식, Javascript에서 객체를 만들 때 사용하는 표현식
JavaScript Object Notation의 약자로, API 서버 또는 클라이언트 서버 간 데이터 교환 포맷으로 많이 사용된다
특정 언어에 종속되지 않으며, 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를 핸들링할 수 있는 라이브러리가 제공된다
JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아 최근 XML을 대체하여 데이터 전송 등에 많이 사용된다

JSON 형식

(1) name-value 형식의 쌍
예시

{
	"firstName":"Stieve",
	"email":"jobs@google.com"
}

(2) 값들의 순서화된 리스트 형식: 여러가지 언어들에서 array,list로 실현
예시

{
	"hobby":["jobs","google"]
}

JSON 라이브러리 - Jackson

Jackson은 JSON 형태를 Java 객체로, Java 객체를 JSON 형태로 변환해주는 Java용 JSON 라이브러리이다

Spring MVC 기반 RESTful 웹 서비스 구현 절차

  1. RESTful 웹 서비스를 처리할 RestfulController 클래스를 작성하고 Spring Bean으로 등록한다
  2. 요청을 처리할 메소드에 @RequestMapping, @RequestBody, @ResponseBody Annotation을 선언한다
  3. REST Client Tool(ex. postman)을 사용하여 각 메소드를 테스트한다
  4. Ajax 통신을 하여 RESTful 웹 서비스를 호출하는 HTML 페이지를 작성한다

RESTful Controller를 위한 핵심 Annotation

Spring MVC에서는 클라이언트에서 전송한 XML이나 JSON 데이터를 Controller에서 Java 객체로 변환해서 받을 수 있는 기능(수신)을 제공한다

Java 객체를 XML이나 JSON으로 변환해서 전송할 수 있는 기능(송신)을 제공한다

(1) @RequstBody
HTTP Request Body를 Java 객체로 받을 수 있다

(2) @ResponseBody
Java 객체를 HTTP Response Body로 전송할 수 있다

0개의 댓글