SW개발/IT 용어

[REST]REST API 란?

REST API 란?

"Representational State Transfer"

HTTP URI를 통해 자원을 명시하고, HTTP METHOD를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.

즉, 자원의 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미한다

 

 

REST 구성

  • 자원(Resource) - URI
  • 행위(Verb) - HTTP METHOD
  • 표현(Representations)

 

REST 특징

  • Uniform - URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일
  • Stateless - REST는 무상태성 성격을 갖는다. 작업을 위한 상태정보를 따로 저장하고 관리하지 않음.
  • Cacheable - HTTP 기존 웹표준을 그대로 사용하기에 캐싱 기능을 적용할 수 있다.
  • Self-descriptiveness - REST API의 메시지만 보고도 이를 쉽게 이해할 수 있다.
  • Client/Server 구조 - 클라이언트와 서버의 역할이 확실히 구분된다.
  • 계층형 구조 - REST 서버는 다중 계층으로 구성될 수 있으며 보안, 로드 밸런싱, 암호화 등을 추가할 수 있다.

 

REST API 디자인 가이드

  • URI는 정보의 자원을 표현해야 한다.
  • 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.

 

REST API 중심 규칙

1. URI는 정보의 자원을 표현해야 한다. (리소스명은 동사보다는 명사를 사용)

GET /members/delete/1 -> delete 와 같은 행위에 대한 표현이 들어가면 안됨

 

2. 자원에 대한 행위는 HTTP Method로 표현

DELETE /members/1 -> 위의 예시를 다음과 같이 고칠 수 있음

 

 

URI 설계 시 주의할 점

  • 슬래시 구분자는(/) 계층 관계를 나타내는데 사용
  • URI 마지막 문자로 슬래시(/)를 포함하지 않음
  • 하이픈(-)은 URI 가독성을 높이는데 사용
  • 밑줄(_)은 URI에 사용하지 않음
  • URI 경로에는 소문자가 적합
  • 파일 확장자는 URI에 포함시키지 않음

 

해당 규칙들을 잘 준수하면서 설계한 REST API를 RESTful 하다고 볼 수 있다.

728x90

'SW개발 > IT 용어' 카테고리의 다른 글

[HAProxy]HAProxy 란?  (2) 2021.04.07
[WAS, WSGI, CGI]WAS, WSGI, CGI 란?  (0) 2021.02.24
[Docker]Docker 란?  (0) 2021.01.12
[AIOHTTP]AIOHTTP 란?  (0) 2021.01.11
[WebRTC]WebRTC란?  (0) 2021.01.11