오늘은 면접 질문 및 채용 공고 우대 사항에도 적혀있는 Rest API와 Restful API에 대해서 내용 정리를 해보려고 합니다.
Rest란?
자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미합니다.
HTTP URI를 통해 자원을 명시하고, HTTP Method(POST, GET, DELETE, PATCH등)을 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다.
CRUD Operation이란? - 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 뜻합니다.
구성요소
- 자원(Resource) : HTTP URI
- 행위(Verb): HTTP Method
- 표현(Representation of Resource)
특징
- Server-Client(서버-클라이언트 구조)
- Stateless(무상태)
- Cacheable(캐시 처리 가능)
- Layered System(계층화)
- Uniform Interface(인터페이스 일관성)
장점
- HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능합니다.
- HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축할 필요가 없습니다.
- REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있습니다.
- 서버와 클라이언트의 역할을 명확하게 분리해줍니다..
단점
- HTTP Method 형태가 제한적이다.
- 표준이 존재하지 않습니다.
REST API
REST기반으로 만들어진 API
특징
- REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다.
- REST는 HTTP 표준을 기반으로 구현, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.
설계 규칙
- 소문자를 사용하여야 한다. Apple X apple O
- 마지막에 /(슬래시)를 포함하지 않는다.
- 언더바 말고 하이픈을 사용한다. _말고 -
- 파일확장자는 URI에 포함하지 않는다. .jpg 등
- 행위를 표현하지 않는다. create-post X create O
RESTful API
REST원리를 따르는 것을 RESTful API라고 합니다.
REST를 사용했다고 해서 모두가 RESTful API는 아닙니다. REST API 설계 규칙을 올바르게 지킨 시스템을 RESTful API하다 말할 수 있습니다.
못한 경우
- CRUD 기능을 모두 POST로 처리하는 API
- URI규칙을 올바르게 지키지 않은 API