RESTful API에서 REST란,
REpresentational State Transfer의 약자로, HTTP기반으로
필요한 자원에 접근하는 방식
을 정해놓은 아키텍쳐
이다.
위 정의에서 말하는 자원
은 저장된 데이터, 이미지/동영상/문서등의 파일, 서비스를 모두 포함한다.
RESTful API
는
REST
의 특징을 지키면서API
를 제공하는 것을 의미한다.
Client / server 구조
일관적인 인터페이스로 분리되어야 한다.
Stateless
각 요청 간 Client의 Context가 서버에 저장되어서는 안된다.
Cacheable (캐시 처리 가능)
WWW에서와 같이 Client는 응답을 캐싱할 수 있어야 한다.
Layered System (계층화)
Code on demand
인터페이스 일관성
쉬운 사용
API 메세지를 읽는 것 만으로도 의도하는 바를 파악가능
Client / Server의 완벽한 분리
각자의 역할이 명확하게 구분됨
특정 데이터의 세부표현
필요한 실제 데이터를 Body에 표현가능
HTTP방식의 제한
Method의 형태가 제한적
정의되지 않은 표준
정형화된 API 디자인 가이드가 존재하지 않음