-
AWS Lambda로 랜덤아재개그 카카오 플러스친구 만들기 3편 | 리펙토링Serverless 2018. 11. 6. 19:25
Refactoring
파일이 커지기 전에 파일을 분리해봅시다.
오른쪽 버튼을 눌러서 파일을 만들어봅시다.
지금은 get과 post를 모두 index.js에서 처리하는 데요,이를 파일별로 분리해봅시다우선 router 폴더에 http method 별로 처리하는 파일을 각각 만들어줍니다.// router/index.js const {getHandler} = require('./get'); const {postHandler} = require('./post'); exports.getHandler = getHandler; exports.postHandler = postHandler;
// router/get.js exports.getHandler = (path) => { return `success get ${path}`; };
// router/post.js exports.postHandler = (path) => { return `success post ${path}`; };
그리고 response를 만들어주는 부분도 분리합시다.
// response/index.js const {buildResponse} = require('./success'); const {buildError} = require('./error'); exports.buildResponse = buildResponse; exports.buildError = buildError;
// response/error.js exports.buildError = (message, status = 400) => ({ statusCode: status, body: JSON.stringify(message), headers: {'Content-Type': 'application/json; utf-8'}, });
// response/success.js exports.buildResponse = (res) => ({ statusCode: 200, body: JSON.stringify(res), headers: {'Content-Type': 'application/json; utf-8'}, });
그 결과, index.js 파일은 매우 심플해졌습니다!// index.js const {buildResponse, buildError} = require('./response'); const {getHandler, postHandler} = require('./router'); exports.handler = async (event) => { switch (event.httpMethod) { case 'GET': return buildResponse(getHandler(event.path)); case 'POST': return buildResponse(postHandler(event.path)); default: return buildError(`Unsupported method "${event.httpMethod}"`); } };
API Gateway를 통한 요청에도 여전히 정상동작 합니다
Next다음 편에서는 본격적으로 카카오 API spec에 맞춰 키보드를 띄우는 함수를 작성하고 연동해봅시다.
'Serverless' 카테고리의 다른 글
AWS Lambda로 랜덤아재개그 카카오 플러스친구 만들기 5편 | 텍스트로 반응하는 API (1) (0) 2018.11.07 AWS Lambda로 랜덤아재개그 카카오 플러스친구 만들기 4편 | 키보드 API 만들기 (0) 2018.11.07 AWS Lambda Node8 Tip 1편 | callback 없애기 (0) 2018.11.06 AWS Lambda로 랜덤아재개그 카카오 플러스친구 만들기 2편 | Lambda Function 구성하기 (0) 2018.10.28 AWS Lambda로 랜덤아재개그 카카오 플러스친구 만들기 1편 | 기본설정 (0) 2018.10.28 댓글