Dev.J

[REST API] Node.js로 Rest API 제작하기 - 1회차 본문

Programming/Node.js

[REST API] Node.js로 Rest API 제작하기 - 1회차

JJ____ 2021. 10. 15. 15:57

동아리에서 서버 파트로 활동하면서 2주차째 세미나를 진행 중인데 확실히 처음 접하는 파트이다 보니 어렵고 익숙하지 않은 점이 많았다. 또 앞으로 api를 제작할 일이 많은 것으로 알고 있는데 그때 가서 허겁지겁 따라만 가기에도 바쁠 상상을 하니 이렇게는 안 되겠다 싶어 미리 연습할 겸 이렇게 Rest API를 제작해보고자 한다. 강의보고 따라 치는 것뿐일 수 있지만 익숙해진다는 거 만으로도 이 시간이 헛된 시간은 아닐거라 생각한다.

처음엔 'API'에 대한 개념이 확실히 잡히지 않아 노마드코더 등 유튜브 채널을 통해 대략적인 이해를 하고 강의를 따라가기 시작하였다.

 

여기서 염두해둘 REST API 제작 tip

1) URL에서 동사 사용하지 않기 => 대신 HTTP methods를 활용해 인터렉션할 것(GET, POST, PUT, DELETE)

2) 컬렉션 사용하기 (ex. movies, inception (총 두 가지 URL - /movies, /movies/inception))

3) Nouns + HTTP methods 방식 사용 => URL을 바꾸지 않고 다양한 동작 가능 ex) GET /movies/inception : 인셉션 영화 정보 열람

 

일단은 강의를 따라가며 익숙해진 후 내가 원하는 기능을 추가해볼 생각이다.

 

[2021.10.14 ~ 2021.10.15]

Rest api - get, post 메서드 구현 (서버에서 json 파일을 받을 수 있는 것 확인)

- post man 사용 : POST, DELETE 등을 코드를 일일이 작성하지 않고도 서버에서 잘 작동이 되는지 확인 가능

- post 메서드 사용 이유 : 예를 들어 유저 비밀번호는 실제 링크로 노출이 되면 안 되기 때문에 get 대신 사용. URL에 데이터가 포함되지 않아 안전하게 데이터를 이용해서 보낼 수 있음

- post man에서 head & body 설정 : 현재 POST 메서드를 사용할 때 보내는 데이터는 json 포맷이다 라는걸 서버에 알려주는 것.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
const express = require('express');
 
//bodyParser : 현재 있는 데이터들을 제이슨 포멧으로 읽을 수 있게 도와주는 것
const bodyParser = require('body-parser');
 
const server = express();
 
//bodyParser을 사용 가능하게 해줌.
server.use(bodyParser.json());
 
// 2. array를 사용해서 간단한 두 유저 생성
const users = [
    {
        id:"qwer",
        name:"Jacky",
        email:"jacky12@gmail.com",
    },
    {
        id:"asdf",
        name:"Lucy",
        email:"lucy34@gmail.com",
    }
];
 
// 3. 엔드 포인트 만들기(서버에서 클라이언트로 보내기)
// /api/user 요청이 온 경우 응답으로 제이슨 포멧의 유저들 데이터를 불러옴
server.get('/api/user',(req,res)=>{
    res.json(users);
});
 
server.post("/api/user", (req,res) =>
    users.push(req.body);   //body로 받은 object를 users 데이터에 추가 
    res.json(users);    
});
 
// 1. 서버를 듣기위해
server.listen(3000,()=>{    
    console.log('The server is running');
});
 
// 2021.10.14 - 오류 구글링 : Cannot GET / 이 뜨는건 Router를 정의하지 않았기 때문이다
// 2021.10.15 해결 - 터미널에 npm start를 쳐줘야 홈페이지에서 제대로 뜸
cs
POST 메소드로 유저 정보 추가

 

[참고한 API 제작 영상]

https://www.youtube.com/watch?v=HjWYK_ORW0w&list=PLHGvDasahwZNIJ0aZQIhrf1Tg7Djqk7VQ&index=1

728x90

'Programming > Node.js' 카테고리의 다른 글

[REST API] Node.js로 Rest API 제작하기 - 2회차  (0) 2021.10.20