REST API는 자원(Resource), 행위(Verb), 표현(Representation)의 3가지 요소로 구성된다.
| 구성 요소 | 내용 | 표현 방법 |
|---|---|---|
| 자원 (Resource) | 자원 | URI (엔드포인트) |
| 행위 (Verb) | 자원에 대한 행위 | HTTP 요청 메서드 |
| 표현 (Representation) | 자원에 대한 행위의 구체적 내용 | 페이로드 |
REST API를 설계할 때 가장 중요한 두 가지 원칙은 다음과 같다.
URI는 리소스를 표현해야 한다.
# bad
GET /getTodos/1
GET /todos/show/1
# good
GET /todos/1
리소스에 대한 행위는 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
JSON Server는 json 파일을 이용하여 빠르고 간편하게 가상 REST API 서버를 구축할 수 있는 툴이다.
$ npm install json-server --save-dev
프로젝트 루트에 db.json 파일을 생성한다.
{
"todos": [
{
"id": 1,
"content": "HTML",
"completed": true
},
{
"id": 2,
"content": "CSS",
"completed": false
},
{
"id": 3,
"content": "Javascript",
"completed": true
}
]
}
package.json의 scripts에 실행 스크립트를 추가한다.
"scripts": {
"start": "json-server --watch db.json"
}
터미널에서 npm start로 서버를 실행한다. 기본 포트는 3000이다.