REST API란 REST(Representational State Transfer)를 기반으로 만들어진 API를 의미한다. REST API를 알기 위해 REST부터 알아보자!!!
REST란?
웹에서 자원의 상태를 주고 받는 것을 의미
모든 데이터 구조와 처리 방식은 URL을 통해서 정의된다.
GET, POST, PUT, DELETE
와 같은 메서드 제공1. Server-Client(서버-클라이언트 구조)
REST 서버는 API 제공, 클라이언트는 사용자 인증이나 컨텍스트 등을 직접 관리
-> 역할 확실히 구분 = 서버와 클라이언트 간 의존성 줄어듬
2. Stateless(무상대성)
작업을 위한 상태 정보를 따로 저장하고 관리하지 않음
-> API 서버는 들어오는 요청만 단순히 처리하면 됨
3.Cacheable(캐시 처리 가능)
HTTP라는 기존 웹 표준을 그대로 사용하기 때문에 웹에서 사용하는 기존의 인프라를 그대로 사용 가능
-> HTTP가 가진 캐싱 기능 적용이 가능
4. Layered System(계층화)
다층 계층으로 구성이 가능하기 때문에 보안, 로드 밸런싱, 암호화 계층을 추가하여 구조 간의 유연성을 줌
또, 프록시, 게이트웨이와 같은 네트워크 기반의 중간 매체를 사용 가능
5. Uniform Interface(인터페이스 일관성)
HPPT 표준에만 따르면, 안드로이드/iOS 플랫폼이든, 제약 없이 모든 플랫폼에서 사용 가능
REST API란?!
REST의 원리를 따르는 API
데이터와 기능의 집합을 제공하여 컴퓨터 프로그램 간의 상호작용을 촉진하며, 서로 정보 교환이 가능하도록 하는 것
URL은 동사보다 명사 사용, 대문자 말고 소문자 사용
http://jixeony.com/run
마지막에 슬래시(/)를 포함X
http://jixeony.com/run/
❌
언더바(_) 대신에 하이픈(-)을 사용
http://jixeony.com/first-test
파일 확장자는 URL에 포함X
http://khj93.com/photo.jpg
❌
행위 포함X
http://khj93.com/post/1
❌
경로 중 변하는 부분은 유일한 값으로 대체
-> 특정 id가 2인 경우
http://jixeony.com/test/2
RESTful API란?
REST의 원리를 따르는 시스템을 의미
하지만, REST를 사용했다고 해서 다 RESTful한 것은 아니다. REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful하다고 표현할 수 있다.