json server 사용 API 테스트

REST APIAPIRESTJSONserverjson-servernpminstalldbdb.json
avatar
2025.04.11
·
5 min read

개발을 하다 보면 백엔드 API가 완전히 구현되기 전 프론트엔드에서 데이터를 미리 테스트하거나 UI 구현을 병렬로 진행해야 하는 경우가 종종 있다.
이럴 때 유용하게 사용할 수 있는 도구가 바로 json-server이다. JSON 파일 하나만으로도 REST API 형태의 서버를 즉시 실행할 수 있기 때문에, 빠른 프로토타이핑이나 API 인터페이스 테스트에 매우 적합하다.


설치 및 실행 방법

npm install -g json-server

설치 후 API로 사용할 JSON 파일을 준비한다.
아래와 같이 db.json 파일을 프로젝트 루트에 생성한다.

{
  "users": [
    {
      "id": 1,
      "name": "이순신",
      "age": 34,
      "address": "서울"
    },
    {
      "id": 2,
      "name": "홍길동",
      "age": 28,
      "address": "부산"
    },
    {
      "id": 3,
      "name": "강감찬",
      "age": 45,
      "address": "대구"
    }
  ]
}

아래 명령어로 서버를 실행할 수 있다.

json-server --watch db.json

기본적으로는 http://localhost:3000에서 서버가 실행되며, 옵션으로 포트나 호스트를 지정할 수도 있다.

json-server --watch db.json -H 192.168.0.100 -p 8080

기능 사용

검색

검색 기능은 q 쿼리 파라미터를 통해 제공되며, 해당 단어가 포함된 모든 필드에서 검색이 수행된다. 예를 들어 아래 요청은 “Discovery”라는 단어가 포함된 항목을 검색한다.

curl -X GET "http://localhost:3000/users?q=홍길동"

name, address 등의 필드 중에 “홍길동”이 포함된 데이터를 찾아준다.

필터링

특정 필드를 기준으로 데이터를 필터링하고자 할 경우, 해당 필드명을 쿼리로 넘기면 된다.
예를 들어 주소가 “부산”인 사용자만 조회하려면 아래와 같이 요청한다.

curl -X GET "http://localhost:3000/users?address=부산"

필요하다면 다중 필터도 가능하다.

curl -X GET "http://localhost:3000/users?age=28&address=부산"

페이지네이션

json-server_page 파라미터를 통해 간단히 페이지네이션을 제공한다. 예를 들어 2페이지의 데이터를 가져오려면 다음과 같이 요청한다.

curl -X GET "http://localhost:3000/users?_page=2"

기본적으로는 한 페이지당 10개의 결과가 반환되며, _limit 파라미터를 함께 사용하면 페이지당 출력 건수를 조정할 수 있다.

curl -X GET "http://localhost:3000/users?_page=1&_limit=2"

정렬

정렬은 sortorder를 조합하여 사용할 수 있다.
예를 들어 나이를 기준으로 내림차순 정렬하려면 다음과 같이 요청한다.

curl -X GET "http://localhost:3000/users?_sort=age&_order=desc"

오름차순으로 정렬하고자 한다면 _order=asc로 설정하면 된다.

오퍼레이터를 이용한 조건 검색

오퍼레이터

의미

_gt

초과 (greater than)

_lt

미만 (less than)

_gte

이상 (greater than or equal)

_lte

이하 (less than or equal)

_ne

같지 않음 (not equal)

예를 들어 나이가 30세 이상인 사용자를 조회하려면 다음과 같이 요청할 수 있다.

curl -X GET "http://localhost:3000/users?age_gte=30"

나이가 30세 이하인 사용자를 조회할 수도 있다.

curl -X GET "http://localhost:3000/users?age_lte=30"






- 컬렉션 아티클