새로운 강의는 이제 https://memi.dev 에서 진행합니다.
memi가 Vue & Firebase로 직접 만든 새로운 사이트를 소개합니다.

바로가기


NEMBV 9 Back-end api test

1 분 소요

이 강좌는 종료되었습니다.
새로운 강좌로 시작하세요~
모던웹(NEMV) 제작 강좌

api 설계를 하기전 어떻게 테스트를 하며 기능을 추가하는 지가 중요하다.

백엔드 개발자라면 장황하게 api를 작성하고 포스트맨 등으로 테스트를 할 수도 있지만..

이미 프론트엔드가 돌아가고 있기 때문에 실제 프론트엔드로 직접 버튼을 추가해서 api 동작 상황부터 체크 해보겠다.

포스트맨은 구글 크롬에서 동작하는 확장 프로그램이다 다양한 패킷을 정의해서 http요청을 할 수 있기 때문에 웹 개발자라면 필수 아이템인것 같다.

api test

RESTful api를 사용하기 위한 최소한의 골격으로 진행해보겠다.

routes/api

api 구조

api/data/index.js

const router = require('express').Router();
const company = require('./company');
const group = require('./group');

router.use('/company', company);
router.use('/group', group);

router.all('*', (req, res) => {
    res.status(404).send({ success: false, msg: `unknown uri ${req.path}` });
});

module.exports = router;
  • comapny와 group을 라우트하고 나머진 404로 보낸다

api/data/company/index.js, group/index.js 공통

const router = require('express').Router();
const ctrl = require('./ctrls');

router.get('/', ctrl.list);
router.post('/', ctrl.add);
router.put('/', ctrl.mod);
router.delete('/', ctrl.del);

router.all('*', (req, res) => {
    res.status(404).send({ success: false, msg: `unknown uri ${req.path}` });
});

module.exports = router;
  • CRUD(post, get, put, delete)를 할 수 있도록 각 라우터 정의를 한다.

api/data/company/ctrls.js, group/ctrls.js 공통

exports.list = (req, res) => {
  res.send({ success: false, msg: 'list 준비중입니다' });
};

exports.add = (req, res) => {
  res.send({ success: false, msg: 'add 준비중입니다' });
};

exports.mod = (req, res) => {
  res.send({ success: false, msg: 'mod 준비중입니다' });
};

exports.del = (req, res) => {
  res.send({ success: false, msg: 'del 준비중입니다' });
};
  • 동작 확인만 할 수 있는 최소한의 응답을 만들었다.

localhost:3000/api/data/company, group test

브라우저에서 할 수 있는 것은 get요청 정도다.. 물론 개발자 모드로 가능한 부분은 있지만.

서버를 시작하고 http://localhost:3000/api/data/company 잘 동작하는지 확인한다.

댓글남기기