본문 바로가기

TIL 및 WIL/TIL (Today I Learned)

[TIL] 2022.07.15 (MLT API 구현, My Little Trip(5))

금요일 진행 상황

 

어제 댓글 조회 및 등록 기능을 구현해주었다.

추가로 CommentSerializer를 사용하여 댓글 수정 및 삭제 기능을 목표로 구현해주고자 하였다.

 

댓글 수정 및 삭제 기능을 구현해준 뒤 DB에 저장된 테스트용 데이터를 가지고 원활하게 작동되는지 확인해주었다.

 

테스트용 데이터

 

우선 댓글 수정 기능을 먼저 확인해보도록 했다.

 

# comment/views.py

class CommentView(APIView):

    ~

    # 댓글 수정 : /comment/<comment_id>
    def put(self, request, comment_id):
        comment = Comment.objects.get(id=comment_id)

        # 부분 업데이트 시 partial=True 사용
        comment_serializer = CommentSerializer(comment, data=request.data, partial=True)

        if comment_serializer.is_valid():
            comment_serializer.save()
            return Response({"message": "댓글 수정 성공"}, status=status.HTTP_200_OK)

        return Response({"error": "댓글 수정 실패"}, status=status.HTTP_400_BAD_REQUEST)

 

댓글 수정 API를 구현해준 뒤 Postman을 통해 해당 API 통신이 잘 이뤄지는지 확인을 해주었다.

 

댓글 수정 Postman

 

Postman에서 API 통신이 원활하게 잘 작동되는 것을 볼 수 있었다.

이제 DB에서 해당 데이터가 바뀌었는지 확인해주었다.

 

바뀐 데이터

 

id가 10인 데이터의 comment와 rating이 바꾸고자 한 값으로 바뀐 것을 볼 수 있었다.

 

이제 댓글 삭제 기능 구현을 위해 API 코드를 적어주었다.

 

# comment/views.py

class CommentView(APIView):

    ~

    # 댓글 삭제 : /comment/<comment_id>
    def delete(self, request, comment_id):
        comment = Comment.objects.get(id=comment_id)
        comment.delete()
        return Response({"message": "댓글 삭제 성공"}, status=status.HTTP_200_OK)

 

댓글 삭제 기능 API 통신이 잘 되는지 Postman으로 확인을 해보았다.

 

댓글 삭제 Postman

 

댓글 삭제 API 통신이 잘 되는 것을 볼 수 있었다.

 

이제 댓글 삭제를 통해 id가 10번인 테스트용 댓글이 잘 삭제되었는지 DB에서 확인을 해보았다.

 

삭제된 데이터

 

이후 프로젝트 진행 상황을 팀 프로젝트 Notion 페이지에 업데이트해주었고, 프로젝트 Github에서 코드를 올리고 PR을 해주었다.

 

Pull Requests

 

-

 

댓글에 대한 API 구현을 끝마쳤다.

댓글 조회/등록/수정/삭제 총 4가지 기능을 구현해주는 것을 마치고, 다음으로는 좋아요 관련 API를 만들어보고자 한다.

 

:D