REST API란?

seul·2022년 7월 28일
0

WEB

목록 보기
1/1

REST API

REST는 Representational State Transfer라는 용어의 약자로, 2000년도에 로이 필딩 (Roy Fielding)의 박사학위 논문에서 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 처음 소개되었다. 이러한 REST는 다음과 같은 구성으로 이루어져있다.

  • 자원(RESOURCE) - URI
  • 행위(Verb) - HTTP METHOD(GET, POST, PUT, DELETE 등)
  • 표현(Representations)

REST는 웹에서 사용되는 자원들에 대한 정의, 자원에 접근 방식에 대한 제약 조건들의 집합이며, 이 제약 조건들을 지키며 설계한 API를 REST API라고 할 수 있다.

💡 REST API란 웹에서 사용되는 데이터나 리소스를 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식을 말한다.

REST 성숙도 모델

레너드 리처드슨(Leonard Richardson)은 REST방법론을 보다 실용적으로 적용하기 위해서 REST API를 잘 적용하기 위한 4단계 모델을 만들었다.

로이 필딩은 이 모델의 모든 단계를 충족해야 REST API라고 부를 수 있다고 했지만, 2단계까지만 적용하더라도 좋은 API 디자인이라고 볼 수 있고, 이런 경우를 HTTP API라고 부른다.

REST 성숙도 모델 - 0단계

  • HTTP 프로토콜을 사용
  • 이것만으로 REST API라고 하지 않는다, REST API를 작성하기 위한 기본 단계이다.

REST 성숙도 모델 - 1단계

  • 개별 리소스(Resource)와의 통신을 준수해야 한다.
  • 모든 자원은 개별 리소스에 맞는 엔드포인트(Endpoint)를 사용해야한다. 요청하고 받는 자원에 대한 정보를 응답으로 전달해야 한다.
  • 엔드포인트 작성 시에는 동사, HTTP 메서드, 혹은 어떤 행위에 대한 단어 사용은 지양하고, 리소스
    에 집중해 명사 형태의 단어로 작성하는 것이 바람직한 방법

REST 성숙도 모델 - 2단계

  • CRUD에 맞게 적절한 HTTP 메서드를 사용한다.

HTTP Method

  • GET 조회(Read)
  • POST 추가(Create)
  • PUT(또는 PATCH) 갱신 (Update)
  • DELETE 삭제(Delete)

💡 HTTP Method 사용 규칙

  • GET: 서버의 데이터를 변화시키지 않는 요청에 사용
  • POST: 요청마다 새로운 리소스를 생성
  • PUT: 요청마다 같은 리소스를 반환, 교체의 역할
  • PATCH: 수정의 용도로 사용

REST 성숙도 모델 - 3단계

  • HATEOAS(Hypertext As The Engine Of Application State)라는 약어로 표현되는 하이퍼미디어 컨트롤을 적용한다.
  • 2단계와 동일하지만, 응답에는 리소소의 URI를 포함한 링크요소를 삽입하여 작성해야 한다.

OPEN API

API란?

Application Programming Interface의 약자로, 응용 프로그램을 만드는데 필요한 연결장치, 매개체라고 이해할 수 있다. 실제 개발할때, 혼자 모든 것을 개발할 수 없기 때문에 이러한 매개체가 필요하다. 접근 권한을 부여받아서 사용할 수 있으며 프로그램 내부가 어떻게 동작하고 있는지는 알 수 없고, API 활용 규약에 따라서 정보를 요청하고 받을 수 있다.

OPEN API

💡 오픈 API(Open Application Programming Interface, Open API, 공개 API)는 누구나 사용할 수 있도록 공개된 API를 말한다

  • 지도, SNS, 음악, 날씨, 공공데이터 등 다양한 분야에서 사용 가능하며 구글, 다음 카카오, 네이버뿐만 아니라 정부에서도 그동안 수집한 공공데이터들을 OPEN API 형태로 제공하고 있다.
  • 사용하는 입장에서는 개발할 때 들어가닌 시간과 비용을 줄일 수 있으며, 더욱 양질의 개발이 가능하다.
  • 정보를 제공하는 입장에서는 API를 통해 정보 및 기능을 제공하면서 홍보효과, 회원 이탈율을 줄이는 등 더 많은 이익을 얻을 수 있다.
  • API마다 정해진 이용 수칙이 있고, 그 이용 수칙에 따라 제한사항(가격, 정보의 제한 등)이 있을 수 있다.

API Key

  • API를 이용하기 위해서 API Key가 필요하다.
  • 정보를 제공하는 입장에서 누가 얼마만큼 사용하고 있는지 추적할 수 있다.
  • API Key가 필요한 경우에는 로그인한 이용자에게 자원에 접근할 수 있는 권한을 API Key의 형태로 제공하고, 데이터를 요청할 때 API key를 같이 전달해야 원하는 응답을 받을 수 있다.

🔗 참고

코드스테이츠 학습 자료

REST - https://meetup.toast.com/posts/92

API

profile
Connecting dots

0개의 댓글