RESTful API

REST API란?

REST란 Representational State Transfer의 줄임말로, 웹을 위한 네트워크 기반 아키텍처 스타일입니다.

RESTful API란 REST한 API라는 의미를 가지는데,

앞으로 소개할 아키텍처 스타일을 적용한 API를 RESTful API라고 합니다.

REST의 특징은 다음과 같습니다.

  • Client - Server

    사용자 인터페이스에 대한 관심을 데이터 저장에 대한 관심으로부터 분리함으로써 클라이언트의 이식성과 서버의 규모확장성을 개선한다

  • Stateless

    클라이언트 - 서버 간 통신에는 상태가 없어야한다. 모든 요청은 필요한 모든 정보를 담고 있어야 한다.

  • Cache

    캐시가 가능해야한다. 모든 서버 응답은 캐시가 가능한지 그렇지 않은지 알 수 있어야 한다.

  • Uniform Interface

    클라이언트 - 서버 간 인터페이스는 균일해야한다. 인터페이스를 일반화함으로써 전체 시스템 아키텍처가 단순해지고 상호작용의 가시성이 개선된다.

  • Layered System

    계층으로 구성이 가능해야하며 각 레이어에 속한 구성 요소는 인접하지 않은 레이어의 구성요소를 볼 수 없어야 한다.

  • Code on demand (Optional)

서버가 네트워크를 통해 클라이언트에 프로그램을 전달하면 그 프로그램이 클라이언트에서 실행될 수 있어야 한다. (필수 아님)

제가 적으면서도 너무 어려운 말들로 이루어져 있는데… 아무튼 요약하자면!

자원을 중심으로 API 설계를 하고, HTTP method를 통해 자원을 처리하도록 한다

가 되겠습니다.

자원 중심의 URI

예를 들어 봅시다!

get /user/delete/1

위 방식은 REST하지 않습니다. URI는 자원을 중심으로 표현을 해야합니다.

Delete 같은 표현이 들어가는 것은 바람직하지 않습니다!

이를 REST하게 수정한다면 아래와 같이 되겠죠

delete /user/1

만약 유저를 삭제하는 것이 아니라 추가한다면 post http method를 사용하겠네요

이런식으로 자원에 대한 행위를 표현할 때에는 get, post, delete, put, patch 메소드를 사용한다고 합니다!

자원에 가할 행위에 대한 것은 http method로 설명하고 URI에서는 자원을 표현하는 것이 REST한 설계입니다

참고자료

REST API 제대로 알고 사용하기


Written by@Mengkki
common fangirl

GitHub