프론트엔드/기타

[REST API] 잘 디자인된 API

잡캐헨리 2022. 8. 5. 21:21

REST API 란?

REST API 란 'Respresentational State Transfer' 의 약자로, 웹에서 사용되는 데이터나 자원을 HTTP URI 로 표현하고, HTTP프로토콜을 이용해 요청, 응답을 정의하는 방식을 이야기한다.

식용유를 두른 팬에 양파 당근 햄 순서로 볶은 다음 소금 후추로 간을 하고 밥과 함께 볶아낸 음식을 주세요
vs
햄 볶음밥 하나 주세요 

우리가 음식점에 들어가서 메뉴를 주문할때, 음식에 들어가는 재료를 일일히 이야기하고, 조리법을 세세하게 설명하고 주문하지는 않는다.

 

대신 메뉴판을 보고 메뉴의 이름을 이야기하면 메뉴에 맞는 재료를 정해진 조리법에 맞춰 조리후 서빙하게 된다.

서버와 클라이언트 사이에도 데이터와 리소스를 요청하고 이에 맞는 응답을 받기 위한 메뉴판이 필요한데 이 메뉴판의 형식이 API라고 할 수 있다.

 

잘 만든 API?

 

레오나르드 리차드슨(Leonard Richardson)의 REST API를 잘 적용하기 위한 4단계 모델

REST API 를 적용할 때 여러가지 규칙들이 있는데 이를 보기쉽게 만든 것이 Richardson의 성숙도 4단계 모델이다.

내용을 한번 살펴보자

 

0단계 HTTP사용

0단계의 API는 HTTP프로토콜을 사용하기만 해도된다. 이 자체로 REST API라고 보기에는 무리가있고, 사용하기 좋은  REST API를 디자인하기 위한 첫 단계라고 할 수 있다.

POST /story HTTP/1.1 {
	user : "BBOMI"
	type : story
}

 

1단계 개별 리소스와의 통신 준수

개별 리소스와의 통신 준수라고 이야기하면 크게 와닿지않을 수 있다. 핵심은 웹에서 사용하는 모든 데이터나 자원을 HTTP URI로 작성하는 것이라고 볼 수있다. 모든 자원은 개별 리소스에 맞는 엔드포인트를 사용하고,  요청하고 받는 자원에 대한 정보를 으답으로 전달해야 한다는 것이 1단계의 핵심이다.

POST /story/BBOMI HTTP/1.1 {
	type : story
}

URI 로 뽀미에 접근하고, 타입만 요청함