728x90
Node.js와 Express로 API 구현 (2) - 방명록 CRUD API
이번 강의에서는 방명록의 CRUD API를 구체적으로 구현하고, Postman을 통해 각 API가 올바르게 작동하는지 테스트하는 방법을 배웁니다. 실습 위주로 진행하며, API 요청과 응답의 전체 흐름을 따라갈 수 있도록 설명합니다.
1. 방명록 작성 (Create) API 구현
기능 설명:
사용자가 작성한 이름과 메시지를 데이터베이스에 저장하는 API입니다.
- 라우트 설정
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('메시지가 성공적으로 저장되었습니다.'); }); });
- Postman을 사용한 테스트
Postman에서 http://localhost:5000/api/guestbook에 POST 요청을 보내 테스트합니다.- Method: POST
- Body: JSON(raw) 형식 선택 후 다음과 같이 입력합니다.
{ "name": "홍길동", "message": "안녕하세요! 첫 번째 메시지입니다." }
- Response: 성공 시 메시지가 성공적으로 저장되었습니다.라는 메시지를 확인할 수 있습니다.
2. 방명록 목록 조회 (Read) API 구현
기능 설명:
데이터베이스에 저장된 모든 방명록 메시지를 조회해 반환하는 API입니다.
- 라우트 설정
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); }); });
- Postman을 사용한 테스트
Postman에서 http://localhost:5000/api/guestbook에 GET 요청을 보냅니다.- Method: GET
- Response: 방명록에 저장된 메시지 목록이 JSON 형식으로 표시됩니다.
3. 방명록 수정 (Update) API 구현
기능 설명:
사용자가 작성한 방명록 메시지를 수정하는 API입니다. 특정 메시지 ID를 받아 메시지를 업데이트합니다.
- 라우트 설정
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('메시지가 성공적으로 수정되었습니다.'); }); });
- Postman을 사용한 테스트
Postman에서 http://localhost:5000/api/guestbook/{id}에 PUT 요청을 보냅니다. {id}에는 수정할 메시지의 ID를 넣습니다.- Method: PUT
- Body: JSON 형식으로 다음과 같이 입력합니다.
{ "message": "메시지가 수정되었습니다!" }
- Response: 성공 시 메시지가 성공적으로 수정되었습니다.라는 메시지를 확인할 수 있습니다.
4. 방명록 삭제 (Delete) API 구현
기능 설명:
특정 메시지 ID를 받아 해당 방명록 메시지를 삭제하는 API입니다.
- 라우트 설정
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('메시지가 성공적으로 삭제되었습니다.'); }); });
- Postman을 사용한 테스트
Postman에서 http://localhost:5000/api/guestbook/{id}에 DELETE 요청을 보냅니다. {id}에는 삭제할 메시지의 ID를 넣습니다.- Method: DELETE
- Response: 성공 시 메시지가 성공적으로 삭제되었습니다.라는 메시지를 확인할 수 있습니다.
요약 및 정리
- 방명록 작성 API: POST /api/guestbook - 사용자가 작성한 이름과 메시지를 데이터베이스에 저장.
- 방명록 목록 조회 API: GET /api/guestbook - 저장된 모든 메시지를 JSON 형식으로 반환.
- 방명록 수정 API: PUT /api/guestbook/:id - 특정 ID의 메시지를 수정.
- 방명록 삭제 API: DELETE /api/guestbook/:id - 특정 ID의 메시지를 삭제.
실습 과제
- 각 API를 Postman에서 테스트해보고, 요청을 보낼 때마다 서버 응답을 확인해봅니다.
- API 엔드포인트가 올바르게 작동하지 않거나 오류 메시지가 발생할 경우, 콘솔에 출력된 오류를 확인하여 수정합니다.
이 강의를 통해 Node.js와 Express로 방명록 애플리케이션의 CRUD 기능을 구축하는 방법을 익힐 수 있습니다. 다음 강의에서는 React 프론트엔드와 연동하여 실제 화면에서 데이터를 처리하는 방법을 학습할 예정입니다.
728x90
'React' 카테고리의 다른 글
React와 Node.js 방명록 개발(6): 데이터 상태 관리 (0) | 2024.11.02 |
---|---|
React와 Node.js 방명록 개발(5): React 프로젝트 생성 (0) | 2024.11.02 |
React와 Node.js 방명록 개발(3): 백엔드 서버 설정 (0) | 2024.11.02 |
React와 Node.js 방명록 개발(2): 데이터베이스 설계 (0) | 2024.11.02 |
React와 Node.js 방명록 개발(1): 프로젝트 개요 및 환경 설정 (1) | 2024.11.02 |