• Feed
  • Explore
  • Ranking
/
/
    Network

    json server 사용 API 테스트

    REST APIAPIRESTJSONserverjson-servernpminstalldbdb.json
    전
    전상욱
    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"

    정렬

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

    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"






    - 컬렉션 아티클