본문 바로가기

Node.js

Node.js로 Restful API Server 만들기(3)

이전글에서 작성했던 test Router에 실제 API 구현시 자주 사용하는 항목들을 추가해 보도록 하겠습니다.

 

예제 1) 파라메터 검사

var express = require('express');
var router = express.Router();

router.get('/get/username', function(req, res, next) {

    let username = req.query.username;
    
    if (username == null || username.length === 0) {
    
    	res.send(JSON.stringify({
        	code : 400,
        	message : "missing parameter"
    	}));
        
        return;
    }

    res.send(JSON.stringify({
        code : 200,
        yourname : username
    }));
});

module.exports = router;

위 코드는 parameter를 검사하여 undefined 또는 empty string인 경우 에러 메시지를 출력합니다.

 

예제 2) Post Request Handler의 등록


router.post('/post/register', function(req, res, next) {

    let username = req.body.username;
    
    if (username == null || username.length === 0) {
    
    	res.send(JSON.stringify({
        	code : 400,
        	message : "missing parameter"
    	}));
        
        return;
    }

    res.send(JSON.stringify({
        code : 200,
        yourname : username
    }));
});

우선 웹브라우저와 JSON으로 메시지를 주고 받도록 규격을 정한뒤에 "/post/register"에 대한 POST Handler 를 등록하였습니다. POST는 http body로 파라메터를 전달되는데 express는 이를 자동으로 Parsing하여 JSON Object형태로 변환한뒤에 req.body저장합니다. 

 

{
	"user_id" : "test_id",
	"user_name" : "test"
}

위 JSON문은 express를 사용하면 아래와 같이 간단하게 참조할 수 있습니다.

let user_id = req.body.user_id;
let user_name = req.body.user_name;

 

예제 3) 응답 Header 설정

router.get('/get/custom_header', function(req, res, next) {

    res.writeHead(200, {
        'content-type' : 'application/json',
        'Access-Control-Allow-Origin' : '*',
        'Access-Control-Allow-Methods' : 'POST, GET, OPTIONS, DELETE',
        'Access-Control-Max-Age' : '3600',
        'Access-Control-Allow-Headers' : 'x-requested-with'
    });

    res.end('{"code" : 200, "result" : "ok"}')
});

위와 같이 HTTP 응답코드 및 HTTP 헤더를 설정하여 응답할 수 있습니다. 위 예제는 Cross Domain을 지원하기 위한 헤더를 추가한 것입니다.

 

이제 코드를 저장하고 node.js를 재기동하여 줍니다.

 

코드가 정상적으로 동작하는지 POSTMAN을 통해 확인해도록 하겠습니다. PostMan은  Restful API를 테스트하기 위한 도구입니다.

 

https://www.postman.com/downloads/

 

Download Postman | Get Started for Free

Try Postman for free! Join 20 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster.

www.postman.com

설치 및 세팅후 구현했던 URL들을 추가해줍니다. 

 

GET Request 테스트

 

 

POST Request 테스트

마지막으로 Custom Header를 확인합니다. 

 

Headers 선택하면 수신된 헤더값들을 확인

코드에서 추가된 헤더들을 확인할 수있습니다. 여기까지 API구현 및 테스트 절차들에 대해 소개하였습니다. 다음장에서는Express의 장점인 다양한 확장플러그인(Middleware)들에 대해 알아보도록 하겠습니다.

 

읽어주셔서 감사합니다.