본문 바로가기
nodejs

[node.js] express로 REST API 서버 개발

by jinbro 2017. 6. 9.
[REST API 서버]
- 자원에 대한 처리 관점으로 요청 - 응답 API 서버 만듬
- 자원에 식별번호 부여
- 자원에 대한 처리 : CRUD(HTTP 메서드), HTTP 사용 극대화


[HTTP 메서드]
1) GET : 자원 조회
2) POST: 자원 생성
3) PUT: 자원 갱신
4) DELETE: 자원 삭제

- express 어플리케이션 메서드로 구현되어있음


[HTTP 상태코드]
- 1xx : 처리 중
- 2xx : 성공(200, get/put), 작성됨(201, post), 내용 없음(204, delete)
- 4xx : 잘못된 요청(400), 권한 없음(401), 잘못된 요청(404), 충돌(409)
- 5xx : 서버 에러(500)


[요청 URI 디자인 - 라우팅]
- 서버 컴퓨터의 파일 디렉토리를 지칭하는 것이 아님
- 자원 요청-응답 처리 API 개념 URI 디자인
- HTTP 사용 극대화


[간단하게 REST API 서버 개발 - 유저 자원]
var express = require('express');
var morgan = require('morgan');
var app = express();
var port = 3000;

var users = [
 {id: 1, name: "alice"},
 {id: 2, name: "bruce"},
 {id: 3, name: "mackin"}
];

app.use(morgan('dev'));

app.get('/users', function(req, res){
    res.json(users);
});

app.post('/users', function(req, res){
    /* post로 온 데이터 파싱 -> db 테이블 레코드 생성 로직 수행 */
    res.send("결과값을 주면 되겠죠?");
});


app.listen(port, function(){
 console.log(`Server is running on ${port}port`);
});

- 어플리케이션 메서드 use를 통해 morgan 미들웨어 함수 사용 : HTTP 요청 내용 console에 찍기

- 같은 URI('/users')지만 HTTP 메서드에 따라 다른 처리를 하도록 라우팅
- res.json() : 응답 시 json 형식 응답
- curl -X GET 'localhost:3000/users' -v : 옵션 -v를 통해서 HTTP 요청 상세 내용을 콘솔창에서 볼 수 있음

-  > (요청 내용), < (응답 내용) : Content-Type:  application/json 



[참고자료 및 읽어보면 좋은 것]
- inflearn, 테스트주도개발(TDD)로 만드는 NodeJS API 서버 : https://goo.gl/OTeuYs

- TOAST Meetup!, REST API 제대로 알고 사용하기 : http://meetup.toast.com/posts/92



댓글