REST API

정의

REST

REST(Representational State Transfer)
REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.
REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이다.

API

API는 컴퓨터의 기능을 실행시키는 방법을 의미한다.

설명

기계와 기계가 웹의 통신 규악인 http를 이용해서 통신할 때 리소스는 URI, 행위는 메소드로, 결과는 응답코드로 http가 원래 가지고 있는 의미를 잘 활용하자는 것이라고 할 수 있다.

REST API에서 규정하지 않는 것은,

  • 클라이언트와 서버가 어떤 데이터 타입으로 통신할 것인지를 규정하지 않는다. json을 써도 되고 xml을 써도 된다.

REST API에서 규정하고 있는 것은,

  • Resource를 식별할 때는 URI를 통해서 식별한다.
  • 어떤 행위를 할 때는 http의 고유한 method를 이용한다.
  • 결과를 알려줄 때는 응답코드를 정확하게 사용해서 결과를 알려준다.
    즉, http 프로토콜을 http프로토콜 답게 사용하자는 것이 REST API 가 주장하는 바이다.

요약

REST API는 REST 기반으로 서비스 API를 구현한 것이다.
REST API는 내 컴퓨터가 아니라 남의 컴퓨터를 실행시킨다.
‘REST API’를 제공하는 웹 서비스를 ‘RESTful’하다고 할 수 있다.

예시

https://www.googleapis.com/.../calendars/calendar_id
{
 "summary":"일정",
 "timeZone":"Asia/Seoul"
}

URI

REST API에서는 데이터들을 resource라고 한다.
resource를 REST API로 표현해 보자.
resource는 URI(Uniform Resource Identifier)를 통해서 표현(식별)된다.
URI는 정보를 식별하는 이름일 뿐이다.

Collection

Collection (테이블 전체)
http://example.com/topics

Element

Element (테이블의 각 행)
http://example.com/topics/1

http method

정보의 가공방법은 CRUD 네 가지가 있다.
REST API에서는 이런 작업들을 method라고 부른다.
REST API에서는 웹의 통신 규약인 http를 이용하기 때문에 http가 가진 메소드를 이용한다.
어떤 행위를 할 때는 method의 이름을 적당히 http의 규정대로 사용한다.
REST API는 http들의 메소드들을 본래 용도에 맞게 쓰자는 것도 중요한 목표이다.

post

http에서 create를 위해 준비된 method

get

http에서 read를 위해 준비된 method

put, patch

http에서 update를 위해 준비된 method
put(전체 수정), patch(부분 수정)

delete

http에서 delete를 위해 준비된 method

웹브라우저에서 웹서버에 ajax를 위한 api인 fetch를 이용해서 REST API를 이용하는 방법

기계들의 대화법 - REST API
WEB2 - HTTP
Ajax - fetch