1 분 소요

REST API에 대해 알아보는 포스팅입니다.
백앤드 개발자라면 이것을 개발하는게 주 업무이기도 하죠.

REST의 정의

  • 자원을 이름으로(자원의 표현)으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미한다.
    즉 , 자원의 표현에 의한 상태 전달이다.

REST의 특징

  • Stateless 무상태성
    • 작업을 위한 상태 정보를 따로 저장하고 관리하지 않습니다.
      세션 정보나 쿠키 정보를 별도로 저장하고 관리하지 않기 때문에 API 서버는 들어오는 요청만을 단순히 처리하면 됩니다.
      때문에 서비스의 자유도가 높아지고 서버에서 불필요한 정보를 관리하지 않음으로써 구현이 단순해집니다.
  • Self-descriptiveness 자체 표현 구조
    • REST API 메시지만 보고도 이를 쉽게 이해할 수 있는 자체 표현 구조로 되어있습니다.
  • Client - Server 구조
    • REST 서버는 API 제공, 클라이언트는 사용자 인증이나 컨텍스트(세션, 로그인 정보)등을 직접 관리하는 구조로 역할이 분리되어 개발해야 할 내용이 명확해지고 서로 간 의존성이 감소합니다.

REST의 구성 요소

자원 : URI

  • 모든 자원에 고유한 ID가 존재하고 이 자원은 Server에 존재한다.
  • 자원을 구별하는 ID는 HTTP URI입니다.
  • Client는 URI를 이용해서 자원을 지정하고 해당 자원의 상태에 대한 조작을 server에 요청합니다.

    URI : 특정 리소스를 식별하는 통합 자원 식별자(Uniform Resource Identifier)

    URL : 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약 (URI에 포함된다.)

행위 : HTTP Method

  • HTTP 프로토콜의 Method를 사용한다.
  • HTTP 프로토콜의 GET, POST, PUT, DELETE와 같은 메서드를 제공한다.

표현

  • REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 응답으로 나타내어질 수 있다.
    (JSON,XML이 가장 보편적으로 사용된다.)

REST API 디자인 가이드

GET /members/delete/1 - bad

DELETE /members/1     - good

위 예시처럼 URI는 자원을 표현하는 것에만 중점을 둡니다. delete와 같은 행위에 대한 표현은 HTTP메서드를 이용합니다.

회원정보를 가져오는 URI

GET /members/get/1    - bad

GET /members/1        - good
회원을 추가 할때

GET  /members/insert/2   - bad 

POST /members            - good

HTTP 메서드의 의미

  • POST : 리소스를 생성합니다.
  • PUT : 리소스를 수정합니다.
  • GET : 리소스를 조회합니다.
  • DELETE : 리소스를 삭제합니다.

댓글남기기