RESTful
RESTful에 대해 알아가보자.
RESTful
개발을 해보았다면 누구나 듣게 되는 그것. RESTful RESTful이 뭔지가 궁금해져서 정리해보았다.
RESTful이란?
REST 아키텍쳐 스타일을 잘 지킨 API를 의미한다.
REST란?
REST는 Representational State Transfer의 줄임말로 자원을 URI로 표현하고, HTTP 메서드로 행위를 정의하는 방식이다.
REST에는 핵심 원칙이 존재하는데
- 클라이언트-서버 구조
- 클라이언트와 서버는 서로 독립적으로 동작한다.
- HTTP 메서드 사용
- HTTP 메서드를 사용하여 자원에 대한 행위를 정의한다.
- 무상태성(Stateless)
- 클라이언트의 상태를 서버가 저장하지 않는다.
- 캐시 처리 가능
- 클라이언트는 서버의 응답을 캐시할 수 있다.
- 서버는 클라이언트에게 캐시 가능 여부를 명시할 수 있다.
- 일관된 인터페이스
- 자원에 대한 행위를 HTTP 메서드로 정의하고, URI로 자원을 표현한다.
- 클라이언트와 서버는 일관된 인터페이스를 사용하여 통신한다.
- 코드 온 디맨드(선택적)
- 서버는 클라이언트에게 코드를 전송할 수 있다.
- 클라이언트는 서버에서 받은 코드를 실행할 수 있다.
예를 들자면
- 자원 : users
- 행위 : GET, POST, PUT, DELETE
이때 RESTful한 API의 설계는
HTTP 메서드 | URI | 설명 |
---|---|---|
GET | /users | 사용자 목록 조회 |
POST | /users | 사용자 생성 |
GET | /users/1 | 특정 사용자 조회 |
PUT or PATCH | /users/1 | 특정 사용자 정보 수정 |
DELETE | /users/1 | 특정 사용자 삭제 |
이런식으로 설계가 된다.
흔히 아는 login/, logout/ 같은 URI는 RESTful하지 않다.
이걸 좀 RESTful하게 바꿔보자면 /auth/login, /auth/logout 이런식으로 바꿔줄 수 있다. /auth는 자원이고 login, logout은 행위이기 때문이다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.