[nodejs] REST API를 위한 라우팅 및 필터링

본 포스트에서는 Node.js와 Express를 사용하여 RESTful API의 라우팅 및 데이터 필터링을 구현하는 방법에 대해 다룹니다.

1. 라우팅

라우팅은 클라이언트의 요청에 따라 적절한 핸들러 함수를 호출하는 프로세스입니다. Express에서는 express.Router를 사용하여 라우트를 정의하고 관리합니다.

예를 들어, 사용자 데이터를 다루는 RESTful API의 경우 다음과 같이 라우트를 정의할 수 있습니다.

const express = require('express');
const router = express.Router();

// GET /users - 모든 사용자 데이터를 가져오는 라우트
router.get('/users', (req, res) => {
  // 사용자 데이터를 반환
});

// GET /users/:id - 특정 사용자의 데이터를 가져오는 라우트
router.get('/users/:id', (req, res) => {
  // 특정 사용자의 데이터를 반환
});

// POST /users - 새로운 사용자 데이터를 생성하는 라우트
router.post('/users', (req, res) => {
  // 새로운 사용자 데이터를 생성
});

// PUT /users/:id - 특정 사용자의 데이터를 업데이트하는 라우트
router.put('/users/:id', (req, res) => {
  // 특정 사용자의 데이터를 업데이트
});

// DELETE /users/:id - 특정 사용자의 데이터를 삭제하는 라우트
router.delete('/users/:id', (req, res) => {
  // 특정 사용자의 데이터를 삭제
});

module.exports = router;

위의 예제에서는 /users 라우트를 통해 모든 사용자 데이터를 가져오고, 특정 사용자의 데이터를 다루는 다양한 HTTP 메서드에 따른 라우트를 정의하고 있습니다.

2. 필터링

Express에서는 미들웨어를 사용하여 요청을 필터링하고 처리하는 작업을 할 수 있습니다. 특정 요청이 들어왔을 때 필요한 처리를 하거나 유효성을 검사하는 등의 작업을 미들웨어를 통해 수행할 수 있습니다.

예를 들어, 사용자가 새로운 데이터를 생성할 때 데이터의 유효성을 검사하는 미들웨어를 적용하는 방법은 다음과 같습니다.

function validateUserData(req, res, next) {
  // 사용자 데이터의 유효성을 검사
  if (/* 유효성 검사 실패시 */) {
    res.status(400).send('유효하지 않은 데이터입니다.');
  } else {
    next();
  }
}

// POST /users - 새로운 사용자 데이터를 생성하는 라우트에 미들웨어 적용
router.post('/users', validateUserData, (req, res) => {
  // 새로운 사용자 데이터를 생성
});

위의 예제에서 validateUserData 미들웨어를 사용하여 새로운 사용자 데이터를 생성하는 라우트에 데이터의 유효성을 검사하는 작업을 수행하고 있습니다.

결론

Node.js와 Express를 사용하면 간편하게 RESTful API의 라우팅 및 필터링을 구현할 수 있습니다. 라우팅을 통해 요청을 적절한 핸들러 함수로 전달하고, 필터링을 통해 요청을 검증하고 처리하는 등의 작업을 수행할 수 있습니다.

위에서 언급한 내용을 참고하여 RESTful API를 구현할 때 라우팅 및 필터링을 올바르게 적용하여 보다 효율적인 API를 개발할 수 있습니다.

참고 문헌: Express 공식문서