TIL

2020-07-08 Register API

Hoon1994 2020. 7. 8. 22:34

#Node.js

 

프로젝트를 할 때 백엔드에서 API가 완료되어야 프론트에서 최종적으로 API를 통해 데이터를 받고, 

가공해서 최종적으로 완성을 한다. 

 

지금까지 수많은 API 통신을 했지만, API는 어떻게 만들까? 궁금하기도 했었다. 

하지만 백엔드쪽을 들여다 볼 일이 없으니...그 동안은 API 로직을 몰랐지만! 

풀스택 강좌를 통해서 작은 API 하나를 생에 처음으로 구현하게 됐다. 

 

먼저, 이 API는 동영상을 끝까지 시청한 경우 View가 +1 되는 로직이고, 

Video의 Model은 이미 구현이 되어 있는 상태이다. 

 

// app.js
app.use(routes.api, apiRouter);

// apiRouter.js

import express from "express";
import routes from "../routes";
import { postRegisterView } from "../controllers/videoController";

const apiRouter = express.Router();

apiRouter.get(routes.registerView, postRegisterView);

export default apiRouter;

// videoController.js

export const postRegisterView = async (req, res) => {
  const {
    params: { id }
  } = req;
  try {
    const video = await Video.findById(id);
    video.views += 1;
    video.save();
    res.status(200);
  } catch (error) {
    res.status(400);
  } finally {
    res.end();
  }
};

 

템플릿을 랜더하지 않는다. req에서 id를 전달 받고, 비디오를 찾은 후 views +1을 해주고 저장하는 로직이다. 

 

API 는 이미 설계되어 있는 데이터베이스의 값만 변경하거나, 내려주는 용도로 사용한다. 

 

이렇게 또 하나 배워간다! 

'TIL' 카테고리의 다른 글

2020-08-04 Life Cycle  (0) 2020.08.04
2020-07-09 Post Register API  (0) 2020.07.09
2020-07-06 Volume & Modal Router  (0) 2020.07.06
2020-07-02 Customize Video Player  (0) 2020.07.02
2020-07-02 Vue.js D-day Counter 공통 컴포넌트  (0) 2020.07.02