What is the RESTful API
Rest API 란 WWW 과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식으로 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반에 대한 패턴이다.
좀 더 쉽게 말하자면, REST API 란 인터넷이라는 정보의 바다에서 정보를 주고받는 활동을 인터넷에 있는 자원과 자원의 위치를 명시 하는 일종의 방법론이자 아키텍처이다. API 설계의 핵심은 자원을 사용하는 것이고 HTTP method 를 통해 자원을 처리하는 양식을 일컷는다.
Characteristics of REST API
Uniform Interface
URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행합니다.
이는 REST API 의 핵심이며, 자원과 자원에 대한 행위(HTTP method) 를 명확히 구분하고 준수합니다.Stateless
REST 는 상태를 가지지 않습니다. 즉, 작업을 위한 상태 정보를 저장하고 관리하지 않기에 서버는 들어오는 요청만 단순히 처리하면 됩니다. 이를 통해 구현이 간편해 집니다.- Cacheable
HTTP라는 기존 웹표준을 그대로 사용하기 때문에, Http가 가진 캐싱 기능을 사용할 수 있습니다. - Self descriptiveness
REST API uri 만 보고도 이를 쉽게 이해할 수 있는 자체 표현구조로 되어있습니다. - Client-Server 구조
자원을 제공자인 Server 와 사용자인 Client 가 명확히 구분되기에 의존성이 없습니다. - 계층형 구조
REST 서버는 다중 계층으로 구성될 수 있으며 보안, 로드 밸런싱, 암호화 계층을 추가해 구조상의 유연성을 둘 수 있고 PROXY, 게이트웨이 같은 네트워크 기반의 중간매체를 사용할 수 있게 합니다.
How to design RESTful API
REST API 설계시 가장 중요한 항목은 다음 두가지로 요약할 수 있습니다.
- URI 는 정보의 자원을 표현해야 한다.
- 자원에 대한 행위는 HTTP method 로 표현한다.
즉, URI 는 어떤 자원을 사용할지에 대한