RESTful API의 개념을 이해하고, CRUD 라우트를 설계 및 구현하는 방법을 익힌다.
1. RESTful API의 개념
RESTful API란?
· REST(Representational State Transfer)는 웹 애플리케이션의 아키텍처 스타일 중 하나로, API를 설계하는 데 사용된다.
· RESTful API는 HTTP 요청을 통해 자원을 처리하며, 주로 JSON 형식으로 데이터를 주고받는다.
RESTful API의 원칙
· 자원의 URI: 자원(Resource)은 고유한 URI(Uniform Resource Identifier)로 식별된다.
· HTTP 메서드: 자원에 대한 작업은 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 수행된다.
· 상태 코드: HTTP 상태 코드는 요청의 결과를 나타낸다(200 OK, 404 Not Found, 500 Internal Server Error 등).
HTTP 메서드와 CRUD 작업
· GET: 자원 조회(Read)
· POST: 자원 생성(Create)
· PUT: 자원 수정(Update)
· DELETE: 자원 삭제(Delete)
2. CRUD 라우트 설계 및 구현
Express 프로젝트 설정
· Express 프로젝트를 설정하고, RESTful API 라우트를 구현한다.
npm init -y
npm install express
기본 서버 설정
const express = require('express');
const app = express();
const port = 3000;
app.use(express.json()); // JSON 요청 바디 파싱
app.listen(port, () => {
console.log(`Server is running at http://localhost:${port}`);
});
CRUD 라우트 설계
· 예제로 간단한 users 자원에 대한 CRUD 라우트를 설계해보자.
1. 사용자 목록 조회 (GET /users)
const users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
];
app.get('/users', (req, res) => {
res.json(users);
});
2. 사용자 생성 (POST /users)
app.post('/users', (req, res) => {
const newUser = {
id: users.length + 1,
name: req.body.name
};
users.push(newUser);
res.status(201).json(newUser);
});
3. 특정 사용자 조회 (GET /users/)
app.get('/users/:id', (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
if (user) {
res.json(user);
} else {
res.status(404).send('User not found');
}
});
4. 사용자 정보 수정 (PUT /users/)
app.put('/users/:id', (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
if (user) {
user.name = req.body.name;
res.json(user);
} else {
res.status(404).send('User not found');
}
});
5. 사용자 삭제 (DELETE /users/)
app.delete('/users/:id', (req, res) => {
const index = users.findIndex(u => u.id === parseInt(req.params.id));
if (index !== -1) {
users.splice(index, 1);
res.status(204).send();
} else {
res.status(404).send('User not found');
}
});
3. RESTful API 설계 예제
예제: 사용자 관리 API
· 위에서 설계한 CRUD 라우트를 통해 사용자 관리 API를 구현해보자.
서버 실행 및 테스트
· 서버를 실행하고, Postman 또는 curl 명령어를 사용하여 API를 테스트한다.
node index.js
· GET /users: 사용자 목록 조회
· POST /users: 새로운 사용자 생성
· GET /users/:id: 특정 사용자 조회
· PUT /users/:id: 특정 사용자 정보 수정
· DELETE /users/:id: 특정 사용자 삭제
- 이전 수업 목록
'프로그래밍 > Node.js' 카테고리의 다른 글
[Next.js14 강의] 16강 - React의 useState와 useEffect 사용법 (0) | 2024.09.09 |
---|---|
[Node.js 강의 시리즈] 21강 - EJS 템플릿 엔진 (0) | 2024.07.22 |
[Node.js 강의 시리즈] 20강 - 미들웨어 (0) | 2024.07.19 |
[Node.js 강의 시리즈] 19강 - 라우팅 (0) | 2024.07.18 |
[Node.js 강의 시리즈] 18강 - Express를 사용한 웹 서버 구축 (1) | 2024.07.17 |