개발/etc

RESTful(REpresentational State Transfer) API란?

Dane.Kim 2022. 8. 22.

REST : REpresentational State Trasfer

REST는 웹을 이용할 때 제약 조건들을 정의하는 소프트웨어 아키텍처 스타일입니다.

HTTP URL을 통해 자원(Resource)을 명시하고 HTTP Method(GET, POST, PUT, DELETE)를 통해서 해당 자원(URL)에 대한 CRUD(Create, Read, Update, Delete)를 적용하는 것을 의미하는데요.

한마디로 HTTP의 장점을 살리고자 하는 통신 규약이라 할 수 있습니다.

로이 필딩(Roy Fielding)의 2000년 박사학위 논문에서 소개되었으며 RESTful API는 이러한 REST를 바탕으로 리소스 중심으로 설계해 기능에 맞게 HTTP Method를 사용하게끔 설계된 API라고 할 수 있습니다.

 

각각

 

GET : 지정된 URL에서 리소스의 표현을 조회

POST : 지정된 URL에 신규 리소스를 생성

PUT : 지정된 URL에 리소스를 생성하거나 업데이트

PATCH : 리소스의 부분 업데이트

DELETE : 지정된 URL의 리소스를 제거

 

의 기능을 수행합니다.

 

 

REST 아키텍처가 갖는 6가지의 제한 조건

인터페이스 일관성 : 일관적인 인터페이스로 분리되어야 합니다.

무상태 : 각 요청 간 클라이언트의 context, 세션과 같은 상태 정보를 서버에 저장하지 않습니다.

캐시 처리 가능 : 클라이언트는 응답을 캐싱할 수 있어야 합니다. 캐시를 통해 대량의 요청을 효율적으로 처리할 수 있습니다.

계층화 : 클라이언트는 대상 서버에 직접 연결되어있는지, Proxy를 통해서 연결되었는지 알 수 없습니다.

Code on demand : 자바 애플릿이나 자바스크립트의 제공을 통해 서버가 클라이언트를 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있습니다.

클라이언트/서버 구조 : 아키텍처를 단순화시키고 작은 단위로 분리함으로써 클라이언트-서버의 각 파트가 독립적으로 구분하고 서로 간의 의존성을 줄입니다.

 

REST 구성

자원(Resource) : HTTP URL

자원에 대한 행위 : HTTP Method

자원에 대한 표현(Representations)

 

REST API 설계 시 유의사항

  1. 소문자 사용
  2. 언더바 대신 하이픈 사용
  3. 슬래시를 마지막에 사용하지 않기
  4. 행위(HTTP Method) 표시하지 않기
  5. 파일 확장자를 URL에 노출시키지 않기
  6. 자원 표현 시 형용사,동사 대신 명사 사용

댓글