티스토리 뷰

Server/Node.js

[Node.js] REST API

공부하는 승승 2023. 7. 12. 02:38

REST API

 

API란?

Application Programming Interface.

통신규약. API 규약에 따라 데이터 전달.

웹 개발에서 API란, 웹서버와 고객 간의 소통 방식. 서버와 통신힐 수 있는 방법

 

Q. API를 어떤 식으로 만들어야 좋은 API인가?

A. REST하게.

 

REST API란?

Representational State Transfer.

Roy Fielding이란 개발자가 주장한 API 디자인 방법

 

REST 원칙 6가지

1. Uniform interface ⭐

하나의 자료는 하나의 URL로

URL 하나를 알면 둘을 알 수 있어야함

요청과 응답은 정보가 충분히 들어있어야함

 

2. Client-Server 역할 구분

브라우저는 요청만

서버는 응답만

 

3. Stateless

요청1과 요청2는 의존성이 없어야함(독립적으로!)

 

4. Cacheable

서버에서 보내주는 정보들은 캐싱이 가능해야함

캐싱을 위한 버전 같은 것도 관리를 잘 해야함

 

5. Layered System

 

6. Code on Demand

 

 

 

좋은 REST API

 

ex) 

instagram.com/explore/tags/food

facebook.com/bbc/photos

 

이름짓기 원칙:

- URL을 명사로 작성

- 하위 문서를 나타낼 땐 /

- 파일확장자(,html) 쓰지 않기

- 띄어쓰기는 대시(-) 사용

- 자료 하나당 하나의 URL

 

 

 

 

GET 요청

// app.get('/pet', (요청, 응답) => {});
app.get('/pet', function(요청, 응답){ //  req, res
    응답.send('펫용품 쇼핑 페이지 입니다.')
});

 

* 서버에서 HTML 파일 전송

app.get('/', function(요청, 응답){ //  req, res
    응답.sendFile(__dirname + '/index.html')
});

app.get('/write', function(요청, 응답){
    응답.sendFile(__dirname + '/write.html')
});

 

 

POST 요청

 

<write.html>

<div class="container mt-3">
    <form action="/add" method="POST"> <!-- /add 경로로 POST 요청 -->
        <div class="form-group">
            <label>오늘의 할일</label>
            <input type="text" class="form-control" name="title"/> <!-- 데이터에 name 작성: 서버에서 데이터 구분하려고 -->
        </div>
        <div class="form-group">
            <label>날짜</label>
            <input type="text" class="form-control" name="date"/>
        </div>
        <button type="submit" class="btn btn-outline-secondary">Submit</button>
    </form>
</div>

 

<server.js>

app.post('/add', function(요청, 응답){ // input에 적은 정보는 '요청'에 저장되어있음. 쉽게 사용하려면 라이브러리(body-parser) 필요
    응답.send('전송완료')
    console.log(요청.body.title);
});
댓글