더북(TheBook)

api/comment/controllers/comment.js

const { sanitizeEntity } = require('strapi-utils');

module.exports = {
  async create(ctx) {
    // 사용자 id를 데이터에 추가
    ctx.request.body.user = ctx.state.user.id;
    // article id 설정
    ctx.request.body.article = ctx.params.articleId;
    // Comment 데이터 생성
    const entity = await strapi.services.article.create(ctx.request.body);
    // 응답 반환
    return sanitizeEntity(entity, { model: strapi.models.comment });
  },
};

Article의 핸들러를 작성할 때와 꽤 비슷하지요? 차이점이 있다면, ctx.request.body.comment 값을 URL 파라미터로 받아온 articleId로 설정하고 있다는 점입니다.

이렇게만 해도 추후 API를 사용할 때 큰 문제가 없지만 완성도를 더 높이려면 해당 게시글이 존재하는지 확인하는 작업을 추가로 구현해도 좋습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.