44장 REST API

44.1 REST API의 구성

REST API는 자원(Resource), 행위(Verb), 표현(Representation)의 3가지 요소로 구성된다.

구성 요소 내용 표현 방법
자원 (Resource) 자원 URI (엔드포인트)
행위 (Verb) 자원에 대한 행위 HTTP 요청 메서드
표현 (Representation) 자원에 대한 행위의 구체적 내용 페이로드

44.2 REST API 설계 원칙

REST API를 설계할 때 가장 중요한 두 가지 원칙은 다음과 같다.

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

    # bad
    GET /getTodos/1
    GET /todos/show/1
    
    # good
    GET /todos/1
    
  2. 리소스에 대한 행위는 HTTP 요청 메서드로 표현한다.

    HTTP 요청 메서드 종류 목적 페이로드
    GET index/retrieve 모든/특정 리소스 취득 X
    POST create 리소스 생성 O
    PUT replace 리소스의 전체 교체 O
    PATCH modify 리소스의 일부 수정 O
    DELETE delete 모든/특정 리소스 삭제 X
    # bad: URI에 행위(delete)를 명시함
    GET /todos/delete/1
    
    # good: URI는 리소스만 표현하고 행위는 HTTP 메서드(DELETE)로 표현함
    DELETE /todos/1
    

44.3 JSON Server를 이용한 REST API 실습

JSON Server는 json 파일을 이용하여 빠르고 간편하게 가상 REST API 서버를 구축할 수 있는 툴이다.

44.3.1 JSON Server 설치

$ npm install json-server --save-dev

44.3.2 db.json 파일 생성

프로젝트 루트에 db.json 파일을 생성한다.

{
  "todos": [
    {
      "id": 1,
      "content": "HTML",
      "completed": true
    },
    {
      "id": 2,
      "content": "CSS",
      "completed": false
    },
    {
      "id": 3,
      "content": "Javascript",
      "completed": true
    }
  ]
}

44.3.3 JSON Server 실행

package.jsonscripts에 실행 스크립트를 추가한다.

"scripts": {
  "start": "json-server --watch db.json"
}

터미널에서 npm start로 서버를 실행한다. 기본 포트는 3000이다.