이전글에서 작성했던 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들을 추가해줍니다.
마지막으로 Custom Header를 확인합니다.
코드에서 추가된 헤더들을 확인할 수있습니다. 여기까지 API구현 및 테스트 절차들에 대해 소개하였습니다. 다음장에서는Express의 장점인 다양한 확장플러그인(Middleware)들에 대해 알아보도록 하겠습니다.
읽어주셔서 감사합니다.
'Node.js' 카테고리의 다른 글
Node.js Socket Programming (1) (0) | 2023.02.18 |
---|---|
Node.js로 Restful API Server 만들기(5) (1) | 2023.02.16 |
Node.js로 Restful API Server 만들기(4) (0) | 2023.02.15 |
Node.js로 Restful API Server 만들기 (2) (0) | 2023.02.13 |
Node.js로 Restful API Server 만들기(1) (0) | 2023.02.12 |