React

React와 Node.js 방명록 개발(4): 방명록 CRUD API

atomicdev 2024. 11. 2. 12:35
728x90

Node.js와 Express로 API 구현 (2) - 방명록 CRUD API

이번 강의에서는 방명록의 CRUD API를 구체적으로 구현하고, Postman을 통해 각 API가 올바르게 작동하는지 테스트하는 방법을 배웁니다. 실습 위주로 진행하며, API 요청과 응답의 전체 흐름을 따라갈 수 있도록 설명합니다.


1. 방명록 작성 (Create) API 구현

기능 설명:
사용자가 작성한 이름과 메시지를 데이터베이스에 저장하는 API입니다.

  1. 라우트 설정
    POST 요청을 통해 방명록을 작성합니다. server.js 파일에 다음 코드를 추가하세요.
    app.post('/api/guestbook', (req, res) => {
      const { name, message } = req.body;
      const sql = 'INSERT INTO guestbook (name, message) VALUES (?, ?)';
      
      db.query(sql, [name, message], (err, result) => {
        if (err) {
          console.error('메시지 저장 오류:', err);
          res.status(500).send('메시지 저장에 실패했습니다.');
          return;
        }
        res.status(201).send('메시지가 성공적으로 저장되었습니다.');
      });
    });
  2. Postman을 사용한 테스트
    Postman에서 http://localhost:5000/api/guestbook에 POST 요청을 보내 테스트합니다.
    • Method: POST
    • Body: JSON(raw) 형식 선택 후 다음과 같이 입력합니다.
      {
        "name": "홍길동",
        "message": "안녕하세요! 첫 번째 메시지입니다."
      }
    • Response: 성공 시 메시지가 성공적으로 저장되었습니다.라는 메시지를 확인할 수 있습니다.

 

 


2. 방명록 목록 조회 (Read) API 구현

기능 설명:
데이터베이스에 저장된 모든 방명록 메시지를 조회해 반환하는 API입니다.

  1. 라우트 설정
    GET 요청을 통해 방명록 목록을 조회할 수 있는 엔드포인트를 추가합니다.
    app.get('/api/guestbook', (req, res) => {
      const sql = 'SELECT * FROM guestbook ORDER BY created_at DESC';
      
      db.query(sql, (err, results) => {
        if (err) {
          console.error('메시지 조회 오류:', err);
          res.status(500).send('메시지 조회에 실패했습니다.');
          return;
        }
        res.json(results);
      });
    });
     
  2. Postman을 사용한 테스트
    Postman에서 http://localhost:5000/api/guestbook에 GET 요청을 보냅니다.
    • Method: GET
    • Response: 방명록에 저장된 메시지 목록이 JSON 형식으로 표시됩니다.

 


3. 방명록 수정 (Update) API 구현

기능 설명:
사용자가 작성한 방명록 메시지를 수정하는 API입니다. 특정 메시지 ID를 받아 메시지를 업데이트합니다.

  1. 라우트 설정
    PUT 요청으로 특정 ID의 방명록 메시지를 수정하는 엔드포인트를 설정합니다.
    app.put('/api/guestbook/:id', (req, res) => {
      const { id } = req.params;
      const { message } = req.body;
      const sql = 'UPDATE guestbook SET message = ? WHERE id = ?';
      
      db.query(sql, [message, id], (err, result) => {
        if (err) {
          console.error('메시지 수정 오류:', err);
          res.status(500).send('메시지 수정에 실패했습니다.');
          return;
        }
        res.send('메시지가 성공적으로 수정되었습니다.');
      });
    });
  2. Postman을 사용한 테스트
    Postman에서 http://localhost:5000/api/guestbook/{id}에 PUT 요청을 보냅니다. {id}에는 수정할 메시지의 ID를 넣습니다.
    • Method: PUT
    • Body: JSON 형식으로 다음과 같이 입력합니다.
      {
        "message": "메시지가 수정되었습니다!"
      }
    • Response: 성공 시 메시지가 성공적으로 수정되었습니다.라는 메시지를 확인할 수 있습니다.

 

 


4. 방명록 삭제 (Delete) API 구현

기능 설명:
특정 메시지 ID를 받아 해당 방명록 메시지를 삭제하는 API입니다.

  1. 라우트 설정
    DELETE 요청으로 특정 ID의 방명록 메시지를 삭제할 수 있는 엔드포인트를 추가합니다.
    app.delete('/api/guestbook/:id', (req, res) => {
      const { id } = req.params;
      const sql = 'DELETE FROM guestbook WHERE id = ?';
      
      db.query(sql, [id], (err, result) => {
        if (err) {
          console.error('메시지 삭제 오류:', err);
          res.status(500).send('메시지 삭제에 실패했습니다.');
          return;
        }
        res.send('메시지가 성공적으로 삭제되었습니다.');
      });
    });
  2. Postman을 사용한 테스트
    Postman에서 http://localhost:5000/api/guestbook/{id}에 DELETE 요청을 보냅니다. {id}에는 삭제할 메시지의 ID를 넣습니다.
    • Method: DELETE
    • Response: 성공 시 메시지가 성공적으로 삭제되었습니다.라는 메시지를 확인할 수 있습니다.

 


POSTMAN API 테스트

요약 및 정리

  1. 방명록 작성 API: POST /api/guestbook - 사용자가 작성한 이름과 메시지를 데이터베이스에 저장.
  2. 방명록 목록 조회 API: GET /api/guestbook - 저장된 모든 메시지를 JSON 형식으로 반환.
  3. 방명록 수정 API: PUT /api/guestbook/:id - 특정 ID의 메시지를 수정.
  4. 방명록 삭제 API: DELETE /api/guestbook/:id - 특정 ID의 메시지를 삭제.

실습 과제

  • 각 API를 Postman에서 테스트해보고, 요청을 보낼 때마다 서버 응답을 확인해봅니다.
  • API 엔드포인트가 올바르게 작동하지 않거나 오류 메시지가 발생할 경우, 콘솔에 출력된 오류를 확인하여 수정합니다.

이 강의를 통해 Node.js와 Express로 방명록 애플리케이션의 CRUD 기능을 구축하는 방법을 익힐 수 있습니다. 다음 강의에서는 React 프론트엔드와 연동하여 실제 화면에서 데이터를 처리하는 방법을 학습할 예정입니다.

 

728x90