[Network] REST API에 관하여

REST API

REST는 “Representational State Transfer”의 약자이며,

API는 "Application Programming Interface" 의 약자로

REST API는 프로그렘과 프로그렘 사이에 데이터를 전달하기 위한 방법을 말한다. 

 

api는 메뉴판과 같다. 데이터를 주문하고, 받을 때엔 메뉴판처럼 정해진 룰이 있어서, 형식에 맞게 공손하게 주문하면 형식에 맞게 예쁘게 돌아온다.

 

미국 버지니아주 CUPS Coffee & TeaM 커피숍 메뉴판, 주문 말투에 따라 달라지는 가격. 출처: https://www.facebook.com/kxly920/photos/a.239394892767023.61315.232324663474046/1218515148188321/?type=3&theater

REST 성숙도 모델

REST API를 디자인하기 위해서는 정해진 규칙에 따라야 하는데, 바로 레오나르드 리차드슨(Leonard Richardson)이 만든 REST 성숙도 모델 이다. 

 

REST 성숙도 모델
3단계 HATEOAS 원칙 준수 :
요청은 2단계와 동일하지만, 응답에 리소스의 URI를 포함한 응답 이후 할 수 있는 액션을 담은 링크(links) 요소를 삽입하여 작성
2단계 HTTP method 원칙 준수 :
CRUD(Create, Read, Update, Delete)에 따른 적절한 method(POST, GET, PUT, PATCH, DELETE) 사용
1단계 개별 리소스와의 통신 준수 :
REST API는 웹에서 사용되는 모든 데이터나 자원(Resource)을 HTTP URI로 표현, 각 자원에 맞는 endpoint 사용
0단계 HTTP 프로토콜 사용

 

대부분의 REST API는 2단계까지를 준수하며, 꼭 3단계까지 준수해야 할 필요는 없다.

즉 REST 성숙도 모델에 따르면, REST API는 method, endpoint, parameter를 가져야 한다.

(API 구조 예시)
(GET)https://comic.naver.com/webtoon/list?titleId=806189
요청방식(method)  +  요청할데이터(endpoint)위치   +  추가정보(parameter)

 

참고로 method 중 PUT과 PATCH의 차이점은, 교체(PUT)와 수정(PATCH)이다.

데이터의 일부만 적어 put을 하게 되면, 원래의 데이터가 작성한 데이터로 "교체" 되므로 작성한 일부를 제외한 나머지는 사라지게 된다.

똑같이 데이터의 일부만 적어 patch를 하게 되면, 작성한 부분만 "수정"되므로 작성하지 않는 나머지 부분은 보존된다.

(이름, 나이, 전화번호가 있을 때 이름부분만 put하면 새로운 이름만 들어가고 나이, 전화번호는 사라진다. 이름부분만 patch하면 이름 부분만 새 데이터로 수정되고 나이와 전화번호는 기존 데이터로 남아있게 된다.) 

Open API

Open API는 공개되어있는 api형태의 데이터이다. 정부에서 제공하는 공공데이터 포털 등이 있다.

모든 open api가 무료이거나 무제한으로 이용 가능한 것은 아니기 때문에 주의가 필요하다.

API Key

API Key는 api서버를 이용하기 위한 권한을 증명하는 열쇠이며, 데이터를 요청할 때 api key를 함께 전달해야 한다.

 

 


이 글은 코드스테이츠 블로깅 과제로, 배운 것을 정리한 글입니다.

 

참고자료