프로그래밍/Node.js

[Node.js 강의 시리즈] 22강 - RESTful API 설계

월횽 2024. 7. 23. 06:30
728x90
반응형
SMALL

RESTful API의 개념을 이해하고, CRUD 라우트를 설계 및 구현하는 방법을 익힌다.

 

 

1. RESTful API의 개념

 

RESTful API란?

· REST(Representational State Transfer)는 웹 애플리케이션의 아키텍처 스타일 중 하나로, API를 설계하는 데 사용된다.
· RESTful API는 HTTP 요청을 통해 자원을 처리하며, 주로 JSON 형식으로 데이터를 주고받는다.

728x90

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);
});

 

SMALL

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: 특정 사용자 삭제

 

 

- 이전 수업 목록

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형
LIST