모던 자바스크립트 Deep Dive
44

REST API

  • HTTP의 장점을 최대한 활용할 수 있는 아키텍처로 소개됨
  • HTTP 프로토콜의 의도대로 디자인하도록 유도해줌
  • REST의 기본 원칙을 지킨 서비스 디자인을 "RESTful"이라 함

REST API의 구성

  • 자원, 행위, 표현으로 구성
  • REST API만으로 HTTP 요청의 내용을 이해할 수 있다.
구성요소내용표현방법
자원자원URI(엔드포인트)
행위자원에 대한 행위HTTP 요청 메서드
표현자원에 대한 행위의 구체적 내용페이로드

REST API 설계 원칙

  1. URI는 리소스를 표현해야 한다.

    • 리소스를 식별할 수 있는 이름은 동사보다는 명사를 사용
      # bad
      GET /getTodos/1
      GET /todos/show/1
      # good
      GET /todos/1
  2. 리소스에 대한 행위는 HTTP 요청 메서드로 표현한다. HTTP 요청 메서드는 클라이언트가 서버에게 요청의 종류와 목적(리소스에 대한 행위)을 알리는 방법이다. 주로 5가지 요청 메서드를 사용하여 CRUD를 구현한다.

    HTTP 요청 메서드종류목적페이로드
    GETindex/retrieve모든/특정 리소스 취득X
    POSTcreate리소스 생성O
    PUTreplace리소스의 전체 교체O
    PATCHmodify리소스의 일부 수정O
    DELETEdelete모든/특정 리소스 삭제X
    # bad
    GET /todos/delete/1
    # good
    DELETE /todos/1
  • POST, PUT, PATCH: 요청 시에는 setRequestHeader 메서드를 사용하여 요청 몸체에 담아 서버로 전송할 페이로드의 MIME 타입을 지정해야 한다.