Published on

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 방식을 살펴보자.

기존의 웹 접근 방식

methodurl
GET/list.do?name=java
POST/insert.do
GET/delete.do?no=100
POST/update.do

REST API를 지원하는 웹 접근 방식

methodurlsql
GET/booksselect
POST/bookinsert
GET/book/10select
PUT/book/23update
DELETE/book/12delete
  • 위와 같이 REST API 설계 시 uri는 동사보다는 명사를, 대문자보다는 소문자를 사용하여야 한다.
  • 마지막에 슬래시(/)를 포함하지 않는다.
  • 가독성을 높이기 위해 언더바 대신 하이폰(-)을 사용한다.