CSR
(Client Side Rendering)에서 GET
요청을 통해 웹 페이지를 불러오고 POST
요청으로 새로운 글을 작성하거나 DELETE
요청으로 작성한 글을 삭제하는 등은 클라이언트와 서버의 통신으로 이루어진다.
이처럼 클라이언트의 요청에 따라 서버에서 적절한 응답을 하는 것이 REST API이다.
REST API에서 REST
는 “Representational State Transfer” 의 약자로 로이 필딩의 박사학위 논문에서 웹(http
)의 장점을 최대한 활용할 수 있는 아키텍처라는 명목으로 처음 등장하였다.
웹상에서 사용되는 자원들을 HTTP URI로 표현하고 HTTP Method를 통해 상태를 정의하는 방식이다.
REST API를 사용한다는 것은 REST 아키텍처의 제약 조건을 준수한다는 말이다.
쉽게 말하자면 HTTP 메소드를 목적에 맞게 적절하게 사용하는 것이다.
/
)누구에게나 열려있는 API
지만 보통은 이용 수칙에 따른 제한(가격, 정보의 제한 등)이 존재한다.
서버의 문을 여는 열쇠
대부분의 경우 비용을 들여 자원(resource)을 제공해주는 서버 입장에서 아무런 조건 없이 익명의 클라이언트에게 정보를 줄 이유가 딱히 없기 때문에 생겼다.
회원가입과 같은 방법을 이용해 자원에 접근할 수 있는 권한을 API Key의 형태로 제공해 주고 이를 요청에 같이 전달할 때에만 자원을 이용 가능하다.
브라우저는 서버에게 HTTP 요청을 보낼 수 있는 훌륭한 도구이지만 GET 요청을 보낼 때만 유용하다.
GET이 아닌 기타 다른 요청을 보내려면 개발자 도구를 이용해 fetch를 이용한 JavaScript 코드를 작성해야한다.
브라우저가 아닌 다른 종류의 HTTP 요청을 테스트할 수 있는 다양한 도구들이 존재하고 많은 API들이 HTTP 프로토콜을 이용하므로 API 테스팅 도구라고 한다.
API 테스팅 도구는 클라이언트 입장에서 서버 API를 테스트하거나 애초에 처음부터 API를 만들 때에도 매우 유용하다.
curl
(대부분 리눅스 환경에 내장됨)wuzz
Postman
(가장 사용하기 쉬움)