RESTful API란
RESTful이란
REST는 Representational State Transfer의 줄임말로, 해당 자원의 상태를 주고받는 것이다. HTTP와 URI 기반으로 자원에 접근할 수 있도록 제공하는 애플리케이션 개발 인터페이스이다.
- HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
- HTTP Method(POST, GET, PUT, DELETE)를 통해
- 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것이다.
REST의 특징
- Uniform interface
- URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일
- Stateless (무상태)
- 요청 간에 클라이언트 정보가 저장되지 않으며, 각 요청이 분리되어 있고 서로 연결되어 있지 않음
- Cacheable (캐시 처리 가능)
- 서버 상호 작용을 간소화하는 캐시 가능 데이터
- Self-descriptiveness (자체 표현 구조)
- URL만 보고도 이를 쉽게 이해할 수 있는 자체 표현 구조로 되어 있음
- Client-Server Architecture (클라이언트-서버 구조)
REST API란
REST의 원리를 따르는 API를 의미한다. REST를 사용했다 하여 모두가 RESTful한 것은 아니며, REST API의 설계 규칙을 올바르게 지킨 프로그램을 RESTful하다고 할 수 있다. 기존의 웹 접근 방식과 rest 방식을 살펴보자.
기존의 웹 접근 방식
method | url |
---|---|
GET | /list.do?name=java |
POST | /insert.do |
GET | /delete.do?no=100 |
POST | /update.do |
REST API를 지원하는 웹 접근 방식
method | url | sql |
---|---|---|
GET | /books | select |
POST | /book | insert |
GET | /book/10 | select |
PUT | /book/23 | update |
DELETE | /book/12 | delete |
- 위와 같이 REST API 설계 시 uri는 동사보다는 명사를, 대문자보다는 소문자를 사용하여야 한다.
- 마지막에 슬래시(/)를 포함하지 않는다.
- 가독성을 높이기 위해 언더바 대신 하이폰(-)을 사용한다.