[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
[참고자료 및 읽어보면 좋은 것]
- express : http://expressjs.com
- inflearn, 테스트주도개발(TDD)로 만드는 NodeJS API 서버 : https://goo.gl/OTeuYs
- TOAST Meetup!, REST API 제대로 알고 사용하기 : http://meetup.toast.com/posts/92
'nodejs' 카테고리의 다른 글
[node.js] 유저 목록 조회, 유저 조회, 삭제 테스트 + API 서버 구현 (0) | 2017.06.16 |
---|---|
[node.js] TDD 라이브러리 - mocha, assert, should, supertest (0) | 2017.06.12 |
[node.js] npm, package.json 제대로 알고 가기 (0) | 2017.06.08 |
[node.js] http 모듈로 간단하게 유저 API 서버 만들기 (0) | 2017.06.05 |
[node.js] 기본 - processing model, module system, async] (0) | 2017.06.04 |
댓글