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는 동사보다는 명사를, 대문자보다는 소문자를 사용하여야 한다.
  • 마지막에 슬래시(/)를 포함하지 않는다.
  • 가독성을 높이기 위해 언더바 대신 하이폰(-)을 사용한다.

Tags:

Categories:

Updated: