240611 TIL

Jun Young Kim·2024년 6월 12일
0

TIL

목록 보기
37/65

Today I Learned (TIL): JSON Server

소개

JSON Server는 가볍고 사용하기 쉬운 도구로, 빠르게 가짜 REST API를 만들 수 있습니다. 프로토타이핑, 테스트 및 모의 개발에 특히 유용합니다. JSON Server를 사용하면 최소한의 노력과 시간으로 완전한 가짜 REST API를 로컬에서 실행할 수 있어, 백엔드가 없는 프론트엔드 개발자들에게 매우 유용합니다.

주요 기능

  1. 빠른 설정: JSON Server는 몇 분 만에 설정할 수 있습니다. 단일 명령으로 로컬에서 완전한 기능의 API를 실행할 수 있습니다.
  2. 제로 설정: 복잡한 설정 파일이나 설정 과정이 필요 없습니다. JSON Server는 기본적으로 바로 작동합니다.
  3. 유연한 데이터 처리: 간단한 JSON 파일을 데이터베이스로 사용할 수 있습니다.
  4. CRUD 작업: JSON Server는 표준 CRUD(생성, 읽기, 업데이트, 삭제) 작업을 지원합니다.
  5. 미들웨어 지원: 특정 요구사항을 처리하거나 모의 API의 기능을 확장하기 위해 커스텀 미들웨어를 추가할 수 있습니다.

설치

JSON Server를 설치하려면 Node.js와 npm(Node Package Manager)이 필요합니다. Node.js와 npm을 설치한 후, 다음 명령어를 사용하여 JSON Server를 글로벌로 설치할 수 있습니다:

yarn add -g json-server

JSON Server 설정

  1. JSON 파일 생성: 이 파일이 데이터베이스 역할을 합니다. 예를 들어, db.json 파일을 다음과 같이 생성합니다:
{
  "posts": [
    { "id": 1, "title": "Hello World", "author": "John Doe" },
    { "id": 2, "title": "JSON Server is awesome", "author": "Jane Doe" }
  ],
  "comments": [
    { "id": 1, "body": "Great post!", "postId": 1 },
    { "id": 2, "body": "Very informative.", "postId": 2 }
  ],
  "profile": { "name": "John Doe" }
}
  1. JSON Server 시작: db.json 파일이 있는 디렉토리로 이동하여 다음 명령어를 실행합니다:
json-server --watch db.json

기본적으로 JSON Server는 http://localhost:3000에서 서버를 시작합니다. 이제 이 URL에서 가짜 API에 접근할 수 있습니다.

JSON Server 사용

엔드포인트

JSON Server는 db.json 예제에서 다음과 같은 엔드포인트를 자동으로 생성합니다:

  • /posts
  • /comments
  • /profile

이 엔드포인트에서 표준 CRUD 작업을 수행할 수 있습니다:

  • GET /posts: 모든 게시글 조회
  • GET /posts/1: ID로 단일 게시글 조회
  • POST /posts: 새 게시글 생성
  • PUT /posts/1: ID로 게시글 업데이트
  • PATCH /posts/1: ID로 게시글 부분 업데이트
  • DELETE /posts/1: ID로 게시글 삭제

쿼리 매개변수

쿼리 매개변수를 사용하여 결과를 필터링하고 정렬할 수 있습니다:

  • 필터: /posts?author=John Doe
  • 페이지네이션: /posts?_page=1&_limit=10
  • 정렬: /posts?_sort=title&_order=asc
  • 전체 텍스트 검색: /posts?q=Hello

커스터마이징

미들웨어

커스텀 기능을 추가하려면 미들웨어를 사용할 수 있습니다. server.js 파일을 생성하고 미들웨어 로직을 추가합니다:

const jsonServer = require('json-server')
const server = jsonServer.create()
const router = jsonServer.router('db.json')
const middlewares = jsonServer.defaults()

server.use(middlewares)
server.use((req, res, next) => {
  if (req.method === 'POST') {
    req.body.createdAt = Date.now()
  }
  next()
})

server.use(router)
server.listen(3000, () => {
  console.log('JSON Server is running')
})

커스텀 서버를 실행하려면 다음 명령어를 사용합니다:

node server.js

커스텀 라우트

routes.json 파일에서 커스텀 라우트를 정의할 수도 있습니다:

{
  "/api/": "/",
  "/blog/:resource/:id/show": "/:resource/:id"
}

커스텀 라우트와 함께 서버를 시작하려면 다음 명령어를 사용합니다:

json-server --watch db.json --routes routes.json

결론

JSON Server는 애플리케이션을 위한 빠르고 간단한 백엔드가 필요한 개발자에게 강력한 도구입니다. 사용의 용이성, 유연성, 표준 RESTful 작업 지원 덕분에 프로토타이핑 및 테스트에 이상적입니다. 개발을 위한 모의 API가 필요하거나 실제 API가 준비될 때까지 임시로 사용할 백엔드가 필요할 때, JSON Server는 최소한의 설정과 구성으로 강력한 솔루션을 제공합니다.

0개의 댓글